Browse Source

Linux_SDK_V1.1.2

thead_admin 1 year ago
parent
commit
384c161771
43 changed files with 19049 additions and 185 deletions
  1. 1 0
      drivers/CMakeLists.txt
  2. 40 17
      drivers/GC02M1B/3aconfig_GC02M1B.json
  3. 1 1
      drivers/GC02M1B/GC02M1B_1600x1200.xml
  4. 26 3
      drivers/GC5035/3aconfig_GC5035.json
  5. 540 0
      drivers/GC5035/3aconfig_GC5035_1280x720_raw10.json
  6. 540 0
      drivers/GC5035/3aconfig_GC5035_1296x972_raw10.json
  7. 540 0
      drivers/GC5035/3aconfig_GC5035_1920x1080_raw10.json
  8. 540 0
      drivers/GC5035/3aconfig_GC5035_2592x1944_raw10.json
  9. 540 0
      drivers/GC5035/3aconfig_GC5035_640x480_raw10.json
  10. 9 3
      drivers/GC5035/GC5035.c
  11. 28 5
      drivers/IMX219/3aconfig_IMX219.json
  12. 540 0
      drivers/IMX219/3aconfig_IMX219_1920x1080_raw10.json
  13. 1 0
      drivers/IMX219/IMX219.c
  14. 540 0
      drivers/IMX334/3aconfig_IMX334_3840x2160_raw12.json
  15. 540 0
      drivers/IMX334/3aconfig_IMX334_3864x2180_raw12.json
  16. 2 0
      drivers/IMX334/IMX334.c
  17. 674 0
      drivers/IMX334/IMX334_3840x2160.xml
  18. 14 14
      drivers/IMX334/IMX334_3864x2180.xml
  19. 541 0
      drivers/OV12870/3aconfig_OV12870.json
  20. 541 0
      drivers/OV12870/3aconfig_OV12870_1920x1080_raw12.json
  21. 541 0
      drivers/OV12870/3aconfig_OV12870_4096x3072_raw12.json
  22. 541 0
      drivers/OV12870/3aconfig_OV12870_640x480_raw12.json
  23. 36 0
      drivers/OV12870/CMakeLists.txt
  24. 1890 0
      drivers/OV12870/OV12870.c
  25. 544 0
      drivers/OV12870/OV12870.xml
  26. 64 64
      drivers/OV12870/OV12870_1920x1080.xml
  27. 544 0
      drivers/OV12870/OV12870_4096x3072.xml
  28. 544 0
      drivers/OV12870/OV12870_640x480.xml
  29. 1221 0
      drivers/OV12870/OV12870_mipi4lane_1920x1080_1200_30f.txt
  30. 1222 0
      drivers/OV12870/OV12870_mipi4lane_4096X3072_1200_30f_init.txt
  31. 1226 0
      drivers/OV12870/OV12870_mipi4lane_640x480_init.txt
  32. 241 0
      drivers/OV12870/OV12870_priv.h
  33. 1377 0
      drivers/OV12870/ov12870.h
  34. 22 13
      drivers/SC132GS/SC132GS.c
  35. 19 0
      drivers/SC2310/3aconfig_SC2310.json
  36. 522 0
      drivers/SC2310/3aconfig_SC2310_1440x1080_raw10.json
  37. 522 0
      drivers/SC2310/3aconfig_SC2310_1920x1080_raw10.json
  38. 541 0
      drivers/SC2310/3aconfig_SC2310_1920x1088_raw12.json
  39. 541 0
      drivers/SC2310/3aconfig_SC2310_640x480_raw12.json
  40. 5 51
      drivers/SC2310/SC2310.c
  41. 14 14
      drivers/SC2310/SC2310_1440x1080.xml
  42. 674 0
      drivers/SC2310/SC2310_640x480.xml
  43. 0 0
      drivers/SC2310/SC2310_mipi2lane_1440x1080_raw10_30fps_init.txt

+ 1 - 0
drivers/CMakeLists.txt

@@ -83,3 +83,4 @@ add_subdirectory(SC132GS)
 add_subdirectory(GC5035)
 add_subdirectory(GC02M1B)
 add_subdirectory(IMX334)
+add_subdirectory(OV12870)

+ 40 - 17
drivers/GC02M1B/3aconfig_GC02M1B.json

@@ -42,10 +42,10 @@
             "faceWeight" : 0.6,
             "motionFilter"  : 0.5,
             "targetFilter"  : 0.5,
-            "wdrContrast.min" : 150,
+            "wdrContrast.min" : 50,
             "wdrContrast.max" : 150,
             "lowlight" : {
-                "linear_repress" : [0.8, 0.7, 0.5, 0.5, 0.4],
+                "linear_repress" : [1, 1, 1, 1, 1],
                 "linear_gain" : [4, 8, 16, 32, 100],
                 "hdr_repress" : [1, 0.8, 0.8, 0.8, 0.8],
                 "hdr_gain" : [4, 8, 16, 32, 100]
@@ -62,11 +62,15 @@
             "indoor" : [1, 1, 1, 1, 1, 1, 1],
             "outdoor" : [1, 1, 1, 1, 1, 1, 1],
             "transition" : [1, 1, 1, 1, 1, 1, 1],
+            "lsc_ratio":{
+                "gains" : [1, 2, 4, 8, 16, 32],
+                "vignetting" : [1, 1, 1, 0.9, 0.8, 0.7]
+            },
             "avg" : 0
         },
         {
             "classname" : "IspController",
-            "enable" : true
+            "enable" : true 
         },
         {
             "classname" : "AutoHdr",
@@ -98,13 +102,13 @@
                     "enable" : [1, 1, 1, 1, 1, 1],
                     "gains" : [1, 2, 4, 8, 16, 32],
                     "curve" : [
+                        [40, 58, 76, 94, 112, 135, 158,	181, 204, 243, 282,	321, 360, 392,	424, 456, 488, 516,	544, 572, 600, 620,	640, 660, 680, 700,	720, 740, 760, 772, 784, 796, 808, 822, 836, 850, 864, 872, 880, 888, 896, 903, 910, 917, 924, 929, 934, 939, 944, 948, 952, 956, 960, 964, 968, 972, 976, 980, 984, 988, 992, 1000, 1008, 1023],
                         [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
                         [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
                         [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
                         [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
-                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
-                        [18, 35, 53, 70, 86, 103, 120, 136, 153, 169, 186, 202, 219, 235, 251, 267, 283, 300, 316, 332, 348, 364, 380, 396, 412, 428, 444, 460, 476, 491, 507, 523, 539, 555, 571, 586, 602, 618, 634, 649, 665, 681, 696, 712, 728, 743, 759, 775, 790, 806, 821, 837, 853, 868, 884, 899, 914, 930, 945, 961, 977, 992, 1008, 1023]
-                    ]
+                         [18, 35, 53, 70, 86, 103, 120, 136, 153, 169, 186, 202, 219, 235, 251, 267, 283, 300, 316, 332, 348, 364, 380, 396, 412, 428, 444, 460, 476, 491, 507, 523, 539, 555, 571, 586, 602, 618, 634, 649, 665, 681, 696, 712, 728, 743, 759, 775, 790, 806, 821, 837, 853, 868, 884, 899, 914, 930, 945, 961, 977, 992, 1008, 1023]
+                   ]
                 },
                 {
                     "hdr" : true,
@@ -131,7 +135,7 @@
                     "hdr" : false,
                     "enable" : [1, 1, 1, 1, 1, 1],
                     "gains" : [1, 2, 4, 8, 16, 32],
-                    "contrast" : [1.6, 1.6, 1.6, 1.6, 1.6, 1.6],
+                    "contrast" : [1.2, 1.2, 1.2, 1.2, 1.2, 1.2],
                     "brightness" : [0, 0, 0, 0, 0, 0],
                     "saturation" : [1.2, 1.05, 0.92, 0.80, 0.75, 0.6],
                     "hue" : [0, 0, 0, 0, 0, 0],
@@ -156,7 +160,7 @@
         {
             "classname" : "Aee",
             "forcecreate" : true,
-            "enable" : true,
+            "enable" : false,
             "disable" : false,
             "tables" : [
                 {
@@ -186,7 +190,7 @@
         {
             "classname" : "ACa",
             "forcecreate" : true,
-            "enable" : true,
+            "enable" : false,
             "disable" : false,
             "tables" : [
                 {
@@ -240,7 +244,7 @@
             "forcecreate" : true,
             "enable" : false,
 	    "disable" : false,
-            "demoire_enable" : true,			
+            "demoire_enable" : false,			
             "demoire_area_thr" : 16,
             "demoire_sat_shrink" : 8,
             "demoire_r2" : 256,
@@ -251,7 +255,7 @@
             "demoire_edge_r1" : 20,
             "demoire_edge_t2_shift" : 4,
             "demoire_edge_t1" :20,	
-            "depurple_enable" : true,		
+            "depurple_enable" : false,		
             "depurple_red_sat" : true,	
             "depurple_blue_sat" : true,	
             "depurple_sat_shrink" : 8,				
@@ -267,7 +271,7 @@
                 {
                     "hdr" : false,
                     "gains" : [1, 2, 4, 8, 16, 32],
-                    "enableSharpen" : [1, 1, 1, 1, 1, 1],
+                    "enableSharpen" : [0, 0, 0, 0, 0, 0],
                     "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
                     "facblack" : [70, 60, 40, 20, 20, 0],
                     "facwhite" : [70, 60, 60, 40, 20, 0],
@@ -321,7 +325,7 @@
             "forcecreate" : true,
             "enable" : false,
 	    "disable" : true,
-            "backlight" : true,
+            "backlight" : false,
             "tables" : [
                 {
                     "hdr" : false,
@@ -363,9 +367,9 @@
             "forcecreate" : false,
             "enable" : false,
 	    "disable" : false,
-            "autonoiseLevel": true,
+            "autonoiseLevel": false,
             "tnr_en" : false,
-            "nlm_en" : true,
+            "nlm_en" : false,
             "tables" : [
                 {
                     "hdr" : false,
@@ -420,7 +424,7 @@
         {
             "classname" : "A2dnrv5",
             "forcecreate" : true,
-            "enable" : true,
+            "enable" : false,
             "disable" : false,
             "tables" : [
                 {
@@ -446,7 +450,7 @@
         {
             "classname" : "ADpf",
             "forcecreate" : true,
-            "enable" : true,
+            "enable" : false,
             "disable" : false,
             "tables" : [
                 {
@@ -513,6 +517,25 @@
                     "blc" : [64, 64]
                 }
             ]
+        },
+        {
+            "classname" : "AGe",
+            "forcecreate" : true,
+            "enable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                }
+            ]
         }
     ]
 }

+ 1 - 1
drivers/GC02M1B/GC02M1B_1600x1200.xml

@@ -1077,7 +1077,7 @@
       </AF>
       <AEC index="1" type="struct" size="[1 1]">
          <SetPoint index="1" type="double" size="[1 1]">
-            [ 80]
+            [120]
          </SetPoint>
          <ClmTolerance index="1" type="double" size="[1 1]">
             [ 20]

+ 26 - 3
drivers/GC5035/3aconfig_GC5035.json

@@ -8,8 +8,8 @@
             "classname" : "Aev2",
             "enable" : true,
             "motionThreshold" : 0.5,
-            "roiWeight" : 0.6,
-            "motionFilter" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
             "maxSensorAgain" : 15.5,
             "maxSensorDgain" : 1,
             "maxIspDgain" : 2.5,
@@ -62,7 +62,11 @@
             "indoor" : [1, 1, 1, 1, 1, 1, 1],
             "outdoor" : [1, 1, 1, 1, 1, 1, 1],
             "transition" : [1, 1, 1, 1, 1, 1, 1],
-            "avg" : 0
+            "lsc_ratio":{
+                "gains" : [1, 2, 4, 8, 16, 32],
+                "vignetting" : [1, 1, 1, 0.9, 0.8, 0.7]
+            },
+            "avg" : 0.0
         },
         {
             "classname" : "IspController",
@@ -512,6 +516,25 @@
                     "blc" : [64, 64]
                 }
             ]
+        },
+        {
+            "classname" : "AGe",
+            "forcecreate" : true,
+            "enable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                }
+            ]
         }
     ]
 }

+ 540 - 0
drivers/GC5035/3aconfig_GC5035_1280x720_raw10.json

@@ -0,0 +1,540 @@
+{
+    "root" : [
+        {
+            "classname" : "Aev1",
+            "enable" : false
+        },
+        {
+            "classname" : "Aev2",
+            "enable" : true,
+            "motionThreshold" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 2.5,
+            "setPoint" : 50,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5
+        },
+        {
+            "classname" : "Aehdr",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter" : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 30
+        },
+        {
+            "classname" : "AdaptiveAe",
+            "enable" : false,
+            "motionThreshold" : 0.7,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter" : 0.5,
+            "targetFilter" : 0.5,
+            "wdrContrast.min" : 10,
+            "wdrContrast.max" : 110,
+            "lowlight" : {
+                "linear_repress" : [1, 0.8, 0.6, 0.4, 0.4],
+                "linear_gain" : [4, 8, 16, 32, 100],
+                "hdr_repress" : [1, 0.8, 0.8, 0.8, 0.8],
+                "hdr_gain" : [4, 8, 16, 32, 100]
+            },
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 50
+        },
+        {
+            "classname" : "Awbv2",
+            "enable" : true,
+            "illuorder" : "A, D50, D65, D75, TL84, F12, CWF",
+            "indoor" : [1, 1, 1, 1, 1, 1, 1],
+            "outdoor" : [1, 1, 1, 1, 1, 1, 1],
+            "transition" : [1, 1, 1, 1, 1, 1, 1],
+            "lsc_ratio":{
+                "gains" : [1, 2, 4, 8, 16, 32],
+                "vignetting" : [1, 1, 1, 0.9, 0.8, 0.7]
+            },
+            "avg" : 0.0
+        },
+        {
+            "classname" : "IspController",
+            "enable" : true
+        },
+        {
+            "classname" : "AutoHdr",
+            "enable" : false
+        },
+        {
+            "classname" : "DciHist",
+            "enable" : false,
+            "gaussMeanPos" : 64,
+            "gaussSigmaPos" : 128,
+            "gaussAmpPos" : 1,
+            "gaussMeanNeg" : 0,
+            "gaussSigmaNeg" : 128,
+            "gaussAmpNeg" : 1
+        },
+        {
+            "classname" : "SensorController",
+            "enable" : true
+        },
+        {
+            "classname" : "AGamma64",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [18, 35, 53, 70, 86, 103, 120, 136, 153, 169, 186, 202, 219, 235, 251, 267, 283, 300, 316, 332, 348, 364, 380, 396, 412, 428, 444, 460, 476, 491, 507, 523, 539, 555, 571, 586, 602, 618, 634, 649, 665, 681, 696, 712, 728, 743, 759, 775, 790, 806, 821, 837, 853, 868, 884, 899, 915, 930, 946, 961, 977, 992, 1008, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ACproc",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1, 1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0],
+                    "saturation" : [1, 1, 1, 1, 1, 1],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1, 1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0],
+                    "saturation" : [1, 1, 1, 1, 1, 1],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                }
+            ]
+        },
+        {
+            "classname" : "Aee",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1000, 500, 200]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [8000, 8000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1500, 600, 200]
+                }
+            ]
+        },
+        {
+            "classname" : "ACa",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enableCA" : [0, 0, 0, 0, 0, 0],
+                    "enableDCI" : [1, 1, 1, 1, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1023, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enableCA" : [0, 0, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ADmsc2",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "demoire_enable" : true,		
+            "demoire_area_thr" : 3,
+            "demoire_sat_shrink" : 5,
+            "demoire_r2" : 256,
+            "demoire_r1" : 0,           
+		    "demoire_t2_shift" : 2,
+            "demoire_t1" : 180,
+            "demoire_edge_r2" : 256,
+            "demoire_edge_r1" : 20,
+            "demoire_edge_t2_shift" : 4,
+            "demoire_edge_t1" :20,	
+            "depurple_enable" : true,		
+            "depurple_red_sat" : true,	
+            "depurple_blue_sat" : true,	
+            "depurple_sat_shrink" : 8,				
+            "depurple_thr" : 8,
+            "skin_enable" : false,			
+            "cb_thr_max_2047" : 10,
+            "cb_thr_min_2047" : 8,
+            "cr_thr_max_2047" : 10,
+            "cr_thr_min_2047" : 8,
+            "y_thr_max_2047" : 10,
+            "y_thr_min_2047" : 8,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [1, 1, 1, 1, 1, 1],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [10, 10, 10, 10, 10, 10],
+                    "facwhite" : [10, 10, 10, 10, 10, 10],
+                    "maxblack" : [20, 20, 20, 20, 20, 20],
+                    "maxwhite" : [20, 20, 20, 20, 20, 20],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],					
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [0, 0, 0, 0, 0, 0],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [200, 200, 100, 50, 20, 20],
+                    "facwhite" : [200, 200, 150, 80, 40, 20],
+                    "maxblack" : [200, 200, 100, 100, 100, 100],
+                    "maxwhite" : [200, 200, 200, 200, 200, 200],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],				
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                }
+            ]
+        },
+        {
+            "classname" : "AWdr4",
+            "forcecreate" : true,
+            "enable" : false,
+	    "disable" : true,
+            "backlight" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                }
+            ],
+            "entropy_slope" : 200,
+            "entropy_base" : 700,
+            "entropy" : [0, 0, 0, 2, 3, 6, 11, 22, 39, 67, 111, 177, 227, 266, 321, 355, 377, 355, 221, 0],
+            "gamma_down" : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 9, 16, 36, 64, 136, 256, 576, 1023],
+            "gamma_up" : [0, 283121, 330313, 377512, 424723, 471961, 519250, 566650, 614235, 662241, 711077, 761540, 792420, 815280, 849436, 875575, 913530, 948975, 1002792, 1048575],
+            "?gamma_up" : [0, 1024, 34837, 56737, 82912, 116814, 162079, 223337, 306767, 420749, 576707, 735048, 745499, 755950, 776852, 797754, 839557, 881361, 964968, 1048575],
+            "gamma_pre" : [0, 31514, 36815, 42173, 47646, 53350, 59514, 66602, 75530, 88145, 108135, 142869, 175428, 207095, 269144, 330303, 442139, 571475, 810472, 1048575]
+        },
+        {
+            "classname" : "A3dnrv3",
+            "forcecreate" : false,
+            "enable" : false,
+	    "disable" : false,
+            "autonoiseLevel": true,
+            "tnr_en" : false,
+            "nlm_en" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                }
+            ]
+        },
+        {
+            "classname" : "A2dnrv5",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [90, 90, 90, 90, 90, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [90, 90, 90, 90, 90, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                }
+            ]
+        },
+        {
+            "classname" : "ADpf",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.1, 0.2, 0.4, 0.7, 1, 1.5, 2, 2.5, 3, 3.5],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [1, 1, 1, 1, 1, 1, 1, 2, 4, 16],
+                    "Div" : [64, 64, 64, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [1, 1, 2, 2, 3, 3, 4, 4, 4, 4],
+                    "sigma_rb" : [1, 1, 2, 2, 3, 3, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [16, 16, 16, 16, 16, 16, 16, 16, 16, 16],
+                    "Div" : [65, 65, 65, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "sigma_rb" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ABlc",
+            "forcecreate" : true,
+            "enable" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "blc" : [64, 64]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "blc" : [64, 64]
+                }
+            ]
+        },
+        {
+            "classname" : "AGe",
+            "forcecreate" : true,
+            "enable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                }
+            ]
+        }
+    ]
+}

+ 540 - 0
drivers/GC5035/3aconfig_GC5035_1296x972_raw10.json

@@ -0,0 +1,540 @@
+{
+    "root" : [
+        {
+            "classname" : "Aev1",
+            "enable" : false
+        },
+        {
+            "classname" : "Aev2",
+            "enable" : true,
+            "motionThreshold" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 2.5,
+            "setPoint" : 50,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5
+        },
+        {
+            "classname" : "Aehdr",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter" : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 30
+        },
+        {
+            "classname" : "AdaptiveAe",
+            "enable" : false,
+            "motionThreshold" : 0.7,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter" : 0.5,
+            "targetFilter" : 0.5,
+            "wdrContrast.min" : 10,
+            "wdrContrast.max" : 110,
+            "lowlight" : {
+                "linear_repress" : [1, 0.8, 0.6, 0.4, 0.4],
+                "linear_gain" : [4, 8, 16, 32, 100],
+                "hdr_repress" : [1, 0.8, 0.8, 0.8, 0.8],
+                "hdr_gain" : [4, 8, 16, 32, 100]
+            },
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 50
+        },
+        {
+            "classname" : "Awbv2",
+            "enable" : true,
+            "illuorder" : "A, D50, D65, D75, TL84, F12, CWF",
+            "indoor" : [1, 1, 1, 1, 1, 1, 1],
+            "outdoor" : [1, 1, 1, 1, 1, 1, 1],
+            "transition" : [1, 1, 1, 1, 1, 1, 1],
+            "lsc_ratio":{
+                "gains" : [1, 2, 4, 8, 16, 32],
+                "vignetting" : [1, 1, 1, 0.9, 0.8, 0.7]
+            },
+            "avg" : 0.0
+        },
+        {
+            "classname" : "IspController",
+            "enable" : true
+        },
+        {
+            "classname" : "AutoHdr",
+            "enable" : false
+        },
+        {
+            "classname" : "DciHist",
+            "enable" : false,
+            "gaussMeanPos" : 64,
+            "gaussSigmaPos" : 128,
+            "gaussAmpPos" : 1,
+            "gaussMeanNeg" : 0,
+            "gaussSigmaNeg" : 128,
+            "gaussAmpNeg" : 1
+        },
+        {
+            "classname" : "SensorController",
+            "enable" : true
+        },
+        {
+            "classname" : "AGamma64",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [18, 35, 53, 70, 86, 103, 120, 136, 153, 169, 186, 202, 219, 235, 251, 267, 283, 300, 316, 332, 348, 364, 380, 396, 412, 428, 444, 460, 476, 491, 507, 523, 539, 555, 571, 586, 602, 618, 634, 649, 665, 681, 696, 712, 728, 743, 759, 775, 790, 806, 821, 837, 853, 868, 884, 899, 915, 930, 946, 961, 977, 992, 1008, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ACproc",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1, 1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0],
+                    "saturation" : [1, 1, 1, 1, 1, 1],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1, 1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0],
+                    "saturation" : [1, 1, 1, 1, 1, 1],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                }
+            ]
+        },
+        {
+            "classname" : "Aee",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1000, 500, 200]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [8000, 8000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1500, 600, 200]
+                }
+            ]
+        },
+        {
+            "classname" : "ACa",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enableCA" : [0, 0, 0, 0, 0, 0],
+                    "enableDCI" : [1, 1, 1, 1, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1023, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enableCA" : [0, 0, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ADmsc2",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "demoire_enable" : true,		
+            "demoire_area_thr" : 3,
+            "demoire_sat_shrink" : 5,
+            "demoire_r2" : 256,
+            "demoire_r1" : 0,           
+		    "demoire_t2_shift" : 2,
+            "demoire_t1" : 180,
+            "demoire_edge_r2" : 256,
+            "demoire_edge_r1" : 20,
+            "demoire_edge_t2_shift" : 4,
+            "demoire_edge_t1" :20,	
+            "depurple_enable" : true,		
+            "depurple_red_sat" : true,	
+            "depurple_blue_sat" : true,	
+            "depurple_sat_shrink" : 8,				
+            "depurple_thr" : 8,
+            "skin_enable" : false,			
+            "cb_thr_max_2047" : 10,
+            "cb_thr_min_2047" : 8,
+            "cr_thr_max_2047" : 10,
+            "cr_thr_min_2047" : 8,
+            "y_thr_max_2047" : 10,
+            "y_thr_min_2047" : 8,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [1, 1, 1, 1, 1, 1],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [10, 10, 10, 10, 10, 10],
+                    "facwhite" : [10, 10, 10, 10, 10, 10],
+                    "maxblack" : [20, 20, 20, 20, 20, 20],
+                    "maxwhite" : [20, 20, 20, 20, 20, 20],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],					
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [0, 0, 0, 0, 0, 0],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [200, 200, 100, 50, 20, 20],
+                    "facwhite" : [200, 200, 150, 80, 40, 20],
+                    "maxblack" : [200, 200, 100, 100, 100, 100],
+                    "maxwhite" : [200, 200, 200, 200, 200, 200],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],				
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                }
+            ]
+        },
+        {
+            "classname" : "AWdr4",
+            "forcecreate" : true,
+            "enable" : false,
+	    "disable" : true,
+            "backlight" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                }
+            ],
+            "entropy_slope" : 200,
+            "entropy_base" : 700,
+            "entropy" : [0, 0, 0, 2, 3, 6, 11, 22, 39, 67, 111, 177, 227, 266, 321, 355, 377, 355, 221, 0],
+            "gamma_down" : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 9, 16, 36, 64, 136, 256, 576, 1023],
+            "gamma_up" : [0, 283121, 330313, 377512, 424723, 471961, 519250, 566650, 614235, 662241, 711077, 761540, 792420, 815280, 849436, 875575, 913530, 948975, 1002792, 1048575],
+            "?gamma_up" : [0, 1024, 34837, 56737, 82912, 116814, 162079, 223337, 306767, 420749, 576707, 735048, 745499, 755950, 776852, 797754, 839557, 881361, 964968, 1048575],
+            "gamma_pre" : [0, 31514, 36815, 42173, 47646, 53350, 59514, 66602, 75530, 88145, 108135, 142869, 175428, 207095, 269144, 330303, 442139, 571475, 810472, 1048575]
+        },
+        {
+            "classname" : "A3dnrv3",
+            "forcecreate" : false,
+            "enable" : false,
+	    "disable" : false,
+            "autonoiseLevel": true,
+            "tnr_en" : false,
+            "nlm_en" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                }
+            ]
+        },
+        {
+            "classname" : "A2dnrv5",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [90, 90, 90, 90, 90, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [90, 90, 90, 90, 90, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                }
+            ]
+        },
+        {
+            "classname" : "ADpf",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.1, 0.2, 0.4, 0.7, 1, 1.5, 2, 2.5, 3, 3.5],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [1, 1, 1, 1, 1, 1, 1, 2, 4, 16],
+                    "Div" : [64, 64, 64, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [1, 1, 2, 2, 3, 3, 4, 4, 4, 4],
+                    "sigma_rb" : [1, 1, 2, 2, 3, 3, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [16, 16, 16, 16, 16, 16, 16, 16, 16, 16],
+                    "Div" : [65, 65, 65, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "sigma_rb" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ABlc",
+            "forcecreate" : true,
+            "enable" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "blc" : [64, 64]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "blc" : [64, 64]
+                }
+            ]
+        },
+        {
+            "classname" : "AGe",
+            "forcecreate" : true,
+            "enable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                }
+            ]
+        }
+    ]
+}

+ 540 - 0
drivers/GC5035/3aconfig_GC5035_1920x1080_raw10.json

@@ -0,0 +1,540 @@
+{
+    "root" : [
+        {
+            "classname" : "Aev1",
+            "enable" : false
+        },
+        {
+            "classname" : "Aev2",
+            "enable" : true,
+            "motionThreshold" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 2.5,
+            "setPoint" : 50,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5
+        },
+        {
+            "classname" : "Aehdr",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter" : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 30
+        },
+        {
+            "classname" : "AdaptiveAe",
+            "enable" : false,
+            "motionThreshold" : 0.7,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter" : 0.5,
+            "targetFilter" : 0.5,
+            "wdrContrast.min" : 10,
+            "wdrContrast.max" : 110,
+            "lowlight" : {
+                "linear_repress" : [1, 0.8, 0.6, 0.4, 0.4],
+                "linear_gain" : [4, 8, 16, 32, 100],
+                "hdr_repress" : [1, 0.8, 0.8, 0.8, 0.8],
+                "hdr_gain" : [4, 8, 16, 32, 100]
+            },
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 50
+        },
+        {
+            "classname" : "Awbv2",
+            "enable" : true,
+            "illuorder" : "A, D50, D65, D75, TL84, F12, CWF",
+            "indoor" : [1, 1, 1, 1, 1, 1, 1],
+            "outdoor" : [1, 1, 1, 1, 1, 1, 1],
+            "transition" : [1, 1, 1, 1, 1, 1, 1],
+            "lsc_ratio":{
+                "gains" : [1, 2, 4, 8, 16, 32],
+                "vignetting" : [1, 1, 1, 0.9, 0.8, 0.7]
+            },
+            "avg" : 0.0
+        },
+        {
+            "classname" : "IspController",
+            "enable" : true
+        },
+        {
+            "classname" : "AutoHdr",
+            "enable" : false
+        },
+        {
+            "classname" : "DciHist",
+            "enable" : false,
+            "gaussMeanPos" : 64,
+            "gaussSigmaPos" : 128,
+            "gaussAmpPos" : 1,
+            "gaussMeanNeg" : 0,
+            "gaussSigmaNeg" : 128,
+            "gaussAmpNeg" : 1
+        },
+        {
+            "classname" : "SensorController",
+            "enable" : true
+        },
+        {
+            "classname" : "AGamma64",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [18, 35, 53, 70, 86, 103, 120, 136, 153, 169, 186, 202, 219, 235, 251, 267, 283, 300, 316, 332, 348, 364, 380, 396, 412, 428, 444, 460, 476, 491, 507, 523, 539, 555, 571, 586, 602, 618, 634, 649, 665, 681, 696, 712, 728, 743, 759, 775, 790, 806, 821, 837, 853, 868, 884, 899, 915, 930, 946, 961, 977, 992, 1008, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ACproc",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1, 1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0],
+                    "saturation" : [1, 1, 1, 1, 1, 1],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1, 1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0],
+                    "saturation" : [1, 1, 1, 1, 1, 1],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                }
+            ]
+        },
+        {
+            "classname" : "Aee",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1000, 500, 200]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [8000, 8000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1500, 600, 200]
+                }
+            ]
+        },
+        {
+            "classname" : "ACa",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enableCA" : [0, 0, 0, 0, 0, 0],
+                    "enableDCI" : [1, 1, 1, 1, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1023, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enableCA" : [0, 0, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ADmsc2",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "demoire_enable" : true,		
+            "demoire_area_thr" : 3,
+            "demoire_sat_shrink" : 5,
+            "demoire_r2" : 256,
+            "demoire_r1" : 0,           
+		    "demoire_t2_shift" : 2,
+            "demoire_t1" : 180,
+            "demoire_edge_r2" : 256,
+            "demoire_edge_r1" : 20,
+            "demoire_edge_t2_shift" : 4,
+            "demoire_edge_t1" :20,	
+            "depurple_enable" : true,		
+            "depurple_red_sat" : true,	
+            "depurple_blue_sat" : true,	
+            "depurple_sat_shrink" : 8,				
+            "depurple_thr" : 8,
+            "skin_enable" : false,			
+            "cb_thr_max_2047" : 10,
+            "cb_thr_min_2047" : 8,
+            "cr_thr_max_2047" : 10,
+            "cr_thr_min_2047" : 8,
+            "y_thr_max_2047" : 10,
+            "y_thr_min_2047" : 8,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [1, 1, 1, 1, 1, 1],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [10, 10, 10, 10, 10, 10],
+                    "facwhite" : [10, 10, 10, 10, 10, 10],
+                    "maxblack" : [20, 20, 20, 20, 20, 20],
+                    "maxwhite" : [20, 20, 20, 20, 20, 20],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],					
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [0, 0, 0, 0, 0, 0],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [200, 200, 100, 50, 20, 20],
+                    "facwhite" : [200, 200, 150, 80, 40, 20],
+                    "maxblack" : [200, 200, 100, 100, 100, 100],
+                    "maxwhite" : [200, 200, 200, 200, 200, 200],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],				
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                }
+            ]
+        },
+        {
+            "classname" : "AWdr4",
+            "forcecreate" : true,
+            "enable" : false,
+	    "disable" : true,
+            "backlight" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                }
+            ],
+            "entropy_slope" : 200,
+            "entropy_base" : 700,
+            "entropy" : [0, 0, 0, 2, 3, 6, 11, 22, 39, 67, 111, 177, 227, 266, 321, 355, 377, 355, 221, 0],
+            "gamma_down" : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 9, 16, 36, 64, 136, 256, 576, 1023],
+            "gamma_up" : [0, 283121, 330313, 377512, 424723, 471961, 519250, 566650, 614235, 662241, 711077, 761540, 792420, 815280, 849436, 875575, 913530, 948975, 1002792, 1048575],
+            "?gamma_up" : [0, 1024, 34837, 56737, 82912, 116814, 162079, 223337, 306767, 420749, 576707, 735048, 745499, 755950, 776852, 797754, 839557, 881361, 964968, 1048575],
+            "gamma_pre" : [0, 31514, 36815, 42173, 47646, 53350, 59514, 66602, 75530, 88145, 108135, 142869, 175428, 207095, 269144, 330303, 442139, 571475, 810472, 1048575]
+        },
+        {
+            "classname" : "A3dnrv3",
+            "forcecreate" : false,
+            "enable" : false,
+	    "disable" : false,
+            "autonoiseLevel": true,
+            "tnr_en" : false,
+            "nlm_en" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                }
+            ]
+        },
+        {
+            "classname" : "A2dnrv5",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [90, 90, 90, 90, 90, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [90, 90, 90, 90, 90, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                }
+            ]
+        },
+        {
+            "classname" : "ADpf",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.1, 0.2, 0.4, 0.7, 1, 1.5, 2, 2.5, 3, 3.5],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [1, 1, 1, 1, 1, 1, 1, 2, 4, 16],
+                    "Div" : [64, 64, 64, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [1, 1, 2, 2, 3, 3, 4, 4, 4, 4],
+                    "sigma_rb" : [1, 1, 2, 2, 3, 3, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [16, 16, 16, 16, 16, 16, 16, 16, 16, 16],
+                    "Div" : [65, 65, 65, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "sigma_rb" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ABlc",
+            "forcecreate" : true,
+            "enable" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "blc" : [64, 64]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "blc" : [64, 64]
+                }
+            ]
+        },
+        {
+            "classname" : "AGe",
+            "forcecreate" : true,
+            "enable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                }
+            ]
+        }
+    ]
+}

+ 540 - 0
drivers/GC5035/3aconfig_GC5035_2592x1944_raw10.json

@@ -0,0 +1,540 @@
+{
+    "root" : [
+        {
+            "classname" : "Aev1",
+            "enable" : false
+        },
+        {
+            "classname" : "Aev2",
+            "enable" : true,
+            "motionThreshold" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 2.5,
+            "setPoint" : 50,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5
+        },
+        {
+            "classname" : "Aehdr",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter" : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 30
+        },
+        {
+            "classname" : "AdaptiveAe",
+            "enable" : false,
+            "motionThreshold" : 0.7,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter" : 0.5,
+            "targetFilter" : 0.5,
+            "wdrContrast.min" : 10,
+            "wdrContrast.max" : 110,
+            "lowlight" : {
+                "linear_repress" : [1, 0.8, 0.6, 0.4, 0.4],
+                "linear_gain" : [4, 8, 16, 32, 100],
+                "hdr_repress" : [1, 0.8, 0.8, 0.8, 0.8],
+                "hdr_gain" : [4, 8, 16, 32, 100]
+            },
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 50
+        },
+        {
+            "classname" : "Awbv2",
+            "enable" : true,
+            "illuorder" : "A, D50, D65, D75, TL84, F12, CWF",
+            "indoor" : [1, 1, 1, 1, 1, 1, 1],
+            "outdoor" : [1, 1, 1, 1, 1, 1, 1],
+            "transition" : [1, 1, 1, 1, 1, 1, 1],
+            "lsc_ratio":{
+                "gains" : [1, 2, 4, 8, 16, 32],
+                "vignetting" : [1, 1, 1, 0.9, 0.8, 0.7]
+            },
+            "avg" : 0.0
+        },
+        {
+            "classname" : "IspController",
+            "enable" : true
+        },
+        {
+            "classname" : "AutoHdr",
+            "enable" : false
+        },
+        {
+            "classname" : "DciHist",
+            "enable" : false,
+            "gaussMeanPos" : 64,
+            "gaussSigmaPos" : 128,
+            "gaussAmpPos" : 1,
+            "gaussMeanNeg" : 0,
+            "gaussSigmaNeg" : 128,
+            "gaussAmpNeg" : 1
+        },
+        {
+            "classname" : "SensorController",
+            "enable" : true
+        },
+        {
+            "classname" : "AGamma64",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [18, 35, 53, 70, 86, 103, 120, 136, 153, 169, 186, 202, 219, 235, 251, 267, 283, 300, 316, 332, 348, 364, 380, 396, 412, 428, 444, 460, 476, 491, 507, 523, 539, 555, 571, 586, 602, 618, 634, 649, 665, 681, 696, 712, 728, 743, 759, 775, 790, 806, 821, 837, 853, 868, 884, 899, 915, 930, 946, 961, 977, 992, 1008, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ACproc",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1, 1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0],
+                    "saturation" : [1, 1, 1, 1, 1, 1],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1, 1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0],
+                    "saturation" : [1, 1, 1, 1, 1, 1],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                }
+            ]
+        },
+        {
+            "classname" : "Aee",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1000, 500, 200]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [8000, 8000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1500, 600, 200]
+                }
+            ]
+        },
+        {
+            "classname" : "ACa",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enableCA" : [0, 0, 0, 0, 0, 0],
+                    "enableDCI" : [1, 1, 1, 1, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1023, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enableCA" : [0, 0, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ADmsc2",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "demoire_enable" : true,		
+            "demoire_area_thr" : 3,
+            "demoire_sat_shrink" : 5,
+            "demoire_r2" : 256,
+            "demoire_r1" : 0,           
+		    "demoire_t2_shift" : 2,
+            "demoire_t1" : 180,
+            "demoire_edge_r2" : 256,
+            "demoire_edge_r1" : 20,
+            "demoire_edge_t2_shift" : 4,
+            "demoire_edge_t1" :20,	
+            "depurple_enable" : true,		
+            "depurple_red_sat" : true,	
+            "depurple_blue_sat" : true,	
+            "depurple_sat_shrink" : 8,				
+            "depurple_thr" : 8,
+            "skin_enable" : false,			
+            "cb_thr_max_2047" : 10,
+            "cb_thr_min_2047" : 8,
+            "cr_thr_max_2047" : 10,
+            "cr_thr_min_2047" : 8,
+            "y_thr_max_2047" : 10,
+            "y_thr_min_2047" : 8,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [1, 1, 1, 1, 1, 1],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [10, 10, 10, 10, 10, 10],
+                    "facwhite" : [10, 10, 10, 10, 10, 10],
+                    "maxblack" : [20, 20, 20, 20, 20, 20],
+                    "maxwhite" : [20, 20, 20, 20, 20, 20],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],					
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [0, 0, 0, 0, 0, 0],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [200, 200, 100, 50, 20, 20],
+                    "facwhite" : [200, 200, 150, 80, 40, 20],
+                    "maxblack" : [200, 200, 100, 100, 100, 100],
+                    "maxwhite" : [200, 200, 200, 200, 200, 200],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],				
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                }
+            ]
+        },
+        {
+            "classname" : "AWdr4",
+            "forcecreate" : true,
+            "enable" : false,
+	    "disable" : true,
+            "backlight" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                }
+            ],
+            "entropy_slope" : 200,
+            "entropy_base" : 700,
+            "entropy" : [0, 0, 0, 2, 3, 6, 11, 22, 39, 67, 111, 177, 227, 266, 321, 355, 377, 355, 221, 0],
+            "gamma_down" : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 9, 16, 36, 64, 136, 256, 576, 1023],
+            "gamma_up" : [0, 283121, 330313, 377512, 424723, 471961, 519250, 566650, 614235, 662241, 711077, 761540, 792420, 815280, 849436, 875575, 913530, 948975, 1002792, 1048575],
+            "?gamma_up" : [0, 1024, 34837, 56737, 82912, 116814, 162079, 223337, 306767, 420749, 576707, 735048, 745499, 755950, 776852, 797754, 839557, 881361, 964968, 1048575],
+            "gamma_pre" : [0, 31514, 36815, 42173, 47646, 53350, 59514, 66602, 75530, 88145, 108135, 142869, 175428, 207095, 269144, 330303, 442139, 571475, 810472, 1048575]
+        },
+        {
+            "classname" : "A3dnrv3",
+            "forcecreate" : false,
+            "enable" : false,
+	    "disable" : false,
+            "autonoiseLevel": true,
+            "tnr_en" : false,
+            "nlm_en" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                }
+            ]
+        },
+        {
+            "classname" : "A2dnrv5",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [90, 90, 90, 90, 90, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [90, 90, 90, 90, 90, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                }
+            ]
+        },
+        {
+            "classname" : "ADpf",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.1, 0.2, 0.4, 0.7, 1, 1.5, 2, 2.5, 3, 3.5],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [1, 1, 1, 1, 1, 1, 1, 2, 4, 16],
+                    "Div" : [64, 64, 64, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [1, 1, 2, 2, 3, 3, 4, 4, 4, 4],
+                    "sigma_rb" : [1, 1, 2, 2, 3, 3, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [16, 16, 16, 16, 16, 16, 16, 16, 16, 16],
+                    "Div" : [65, 65, 65, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "sigma_rb" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ABlc",
+            "forcecreate" : true,
+            "enable" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "blc" : [64, 64]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "blc" : [64, 64]
+                }
+            ]
+        },
+        {
+            "classname" : "AGe",
+            "forcecreate" : true,
+            "enable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                }
+            ]
+        }
+    ]
+}

+ 540 - 0
drivers/GC5035/3aconfig_GC5035_640x480_raw10.json

@@ -0,0 +1,540 @@
+{
+    "root" : [
+        {
+            "classname" : "Aev1",
+            "enable" : false
+        },
+        {
+            "classname" : "Aev2",
+            "enable" : true,
+            "motionThreshold" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 2.5,
+            "setPoint" : 50,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5
+        },
+        {
+            "classname" : "Aehdr",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter" : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 30
+        },
+        {
+            "classname" : "AdaptiveAe",
+            "enable" : false,
+            "motionThreshold" : 0.7,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter" : 0.5,
+            "targetFilter" : 0.5,
+            "wdrContrast.min" : 10,
+            "wdrContrast.max" : 110,
+            "lowlight" : {
+                "linear_repress" : [1, 0.8, 0.6, 0.4, 0.4],
+                "linear_gain" : [4, 8, 16, 32, 100],
+                "hdr_repress" : [1, 0.8, 0.8, 0.8, 0.8],
+                "hdr_gain" : [4, 8, 16, 32, 100]
+            },
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 50
+        },
+        {
+            "classname" : "Awbv2",
+            "enable" : true,
+            "illuorder" : "A, D50, D65, D75, TL84, F12, CWF",
+            "indoor" : [1, 1, 1, 1, 1, 1, 1],
+            "outdoor" : [1, 1, 1, 1, 1, 1, 1],
+            "transition" : [1, 1, 1, 1, 1, 1, 1],
+            "lsc_ratio":{
+                "gains" : [1, 2, 4, 8, 16, 32],
+                "vignetting" : [1, 1, 1, 0.9, 0.8, 0.7]
+            },
+            "avg" : 0.0
+        },
+        {
+            "classname" : "IspController",
+            "enable" : true
+        },
+        {
+            "classname" : "AutoHdr",
+            "enable" : false
+        },
+        {
+            "classname" : "DciHist",
+            "enable" : false,
+            "gaussMeanPos" : 64,
+            "gaussSigmaPos" : 128,
+            "gaussAmpPos" : 1,
+            "gaussMeanNeg" : 0,
+            "gaussSigmaNeg" : 128,
+            "gaussAmpNeg" : 1
+        },
+        {
+            "classname" : "SensorController",
+            "enable" : true
+        },
+        {
+            "classname" : "AGamma64",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [18, 35, 53, 70, 86, 103, 120, 136, 153, 169, 186, 202, 219, 235, 251, 267, 283, 300, 316, 332, 348, 364, 380, 396, 412, 428, 444, 460, 476, 491, 507, 523, 539, 555, 571, 586, 602, 618, 634, 649, 665, 681, 696, 712, 728, 743, 759, 775, 790, 806, 821, 837, 853, 868, 884, 899, 915, 930, 946, 961, 977, 992, 1008, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ACproc",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1, 1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0],
+                    "saturation" : [1, 1, 1, 1, 1, 1],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1, 1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0],
+                    "saturation" : [1, 1, 1, 1, 1, 1],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                }
+            ]
+        },
+        {
+            "classname" : "Aee",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1000, 500, 200]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [8000, 8000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1500, 600, 200]
+                }
+            ]
+        },
+        {
+            "classname" : "ACa",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enableCA" : [0, 0, 0, 0, 0, 0],
+                    "enableDCI" : [1, 1, 1, 1, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1023, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enableCA" : [0, 0, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ADmsc2",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "demoire_enable" : true,		
+            "demoire_area_thr" : 3,
+            "demoire_sat_shrink" : 5,
+            "demoire_r2" : 256,
+            "demoire_r1" : 0,           
+		    "demoire_t2_shift" : 2,
+            "demoire_t1" : 180,
+            "demoire_edge_r2" : 256,
+            "demoire_edge_r1" : 20,
+            "demoire_edge_t2_shift" : 4,
+            "demoire_edge_t1" :20,	
+            "depurple_enable" : true,		
+            "depurple_red_sat" : true,	
+            "depurple_blue_sat" : true,	
+            "depurple_sat_shrink" : 8,				
+            "depurple_thr" : 8,
+            "skin_enable" : false,			
+            "cb_thr_max_2047" : 10,
+            "cb_thr_min_2047" : 8,
+            "cr_thr_max_2047" : 10,
+            "cr_thr_min_2047" : 8,
+            "y_thr_max_2047" : 10,
+            "y_thr_min_2047" : 8,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [1, 1, 1, 1, 1, 1],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [10, 10, 10, 10, 10, 10],
+                    "facwhite" : [10, 10, 10, 10, 10, 10],
+                    "maxblack" : [20, 20, 20, 20, 20, 20],
+                    "maxwhite" : [20, 20, 20, 20, 20, 20],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],					
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [0, 0, 0, 0, 0, 0],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [200, 200, 100, 50, 20, 20],
+                    "facwhite" : [200, 200, 150, 80, 40, 20],
+                    "maxblack" : [200, 200, 100, 100, 100, 100],
+                    "maxwhite" : [200, 200, 200, 200, 200, 200],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],				
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                }
+            ]
+        },
+        {
+            "classname" : "AWdr4",
+            "forcecreate" : true,
+            "enable" : false,
+	    "disable" : true,
+            "backlight" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                }
+            ],
+            "entropy_slope" : 200,
+            "entropy_base" : 700,
+            "entropy" : [0, 0, 0, 2, 3, 6, 11, 22, 39, 67, 111, 177, 227, 266, 321, 355, 377, 355, 221, 0],
+            "gamma_down" : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 9, 16, 36, 64, 136, 256, 576, 1023],
+            "gamma_up" : [0, 283121, 330313, 377512, 424723, 471961, 519250, 566650, 614235, 662241, 711077, 761540, 792420, 815280, 849436, 875575, 913530, 948975, 1002792, 1048575],
+            "?gamma_up" : [0, 1024, 34837, 56737, 82912, 116814, 162079, 223337, 306767, 420749, 576707, 735048, 745499, 755950, 776852, 797754, 839557, 881361, 964968, 1048575],
+            "gamma_pre" : [0, 31514, 36815, 42173, 47646, 53350, 59514, 66602, 75530, 88145, 108135, 142869, 175428, 207095, 269144, 330303, 442139, 571475, 810472, 1048575]
+        },
+        {
+            "classname" : "A3dnrv3",
+            "forcecreate" : false,
+            "enable" : false,
+	    "disable" : false,
+            "autonoiseLevel": true,
+            "tnr_en" : false,
+            "nlm_en" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                }
+            ]
+        },
+        {
+            "classname" : "A2dnrv5",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [90, 90, 90, 90, 90, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [90, 90, 90, 90, 90, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                }
+            ]
+        },
+        {
+            "classname" : "ADpf",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.1, 0.2, 0.4, 0.7, 1, 1.5, 2, 2.5, 3, 3.5],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [1, 1, 1, 1, 1, 1, 1, 2, 4, 16],
+                    "Div" : [64, 64, 64, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [1, 1, 2, 2, 3, 3, 4, 4, 4, 4],
+                    "sigma_rb" : [1, 1, 2, 2, 3, 3, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [16, 16, 16, 16, 16, 16, 16, 16, 16, 16],
+                    "Div" : [65, 65, 65, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "sigma_rb" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ABlc",
+            "forcecreate" : true,
+            "enable" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "blc" : [64, 64]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "blc" : [64, 64]
+                }
+            ]
+        },
+        {
+            "classname" : "AGe",
+            "forcecreate" : true,
+            "enable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                }
+            ]
+        }
+    ]
+}

+ 9 - 3
drivers/GC5035/GC5035.c

@@ -52,6 +52,7 @@ static struct vvcam_mode_info pgc5035_mode_info[] = {
         .bayer_pattern = BAYER_GRBG,
         .mipi_phy_freq = 438, //mbps
         .mipi_line_num = 2,
+        .config_file_3a = "GC5035_640x480_raw10",  //3aconfig_GC5035_640x480_raw10.json
         .preg_data = (void *)"gc5035 sensor liner mode 640*480@30",
     },
     {
@@ -64,6 +65,7 @@ static struct vvcam_mode_info pgc5035_mode_info[] = {
         .bayer_pattern = BAYER_RGGB,
         .mipi_phy_freq = 876, //mbps
         .mipi_line_num = 2,
+        .config_file_3a = "GC5035_1920x1080_raw10",  //3aconfig_GC5035_1920x1080_raw10.json
         .preg_data = (void *)"gc5035 sensor liner mode 1920*1080@30",
     },
     {
@@ -76,6 +78,7 @@ static struct vvcam_mode_info pgc5035_mode_info[] = {
         .bayer_pattern = BAYER_RGGB,
         .mipi_phy_freq = 876, //mbps
         .mipi_line_num = 2,
+        .config_file_3a = "GC5035_2592x1944_raw10",  //3aconfig_GC5035_2592x1944_raw10.json		
         .preg_data = (void *)"gc5035 sensor liner mode 2592*1944@30",
     },
     {
@@ -87,7 +90,8 @@ static struct vvcam_mode_info pgc5035_mode_info[] = {
         .bit_width = 10,
         .bayer_pattern = BAYER_RGGB,
         .mipi_phy_freq = 438,
-        .mipi_line_num = 2,        
+        .mipi_line_num = 2,  
+        .config_file_3a = "GC5035_1296x972_raw10",  //3aconfig_GC5035_1296x972_raw10.json		
         .preg_data = (void *)"gc5035 sensor liner mode 1296*972@30",
     },
     {
@@ -99,7 +103,8 @@ static struct vvcam_mode_info pgc5035_mode_info[] = {
         .bit_width = 10,
         .bayer_pattern = BAYER_RGGB,
         .mipi_phy_freq = 438, //COULD BE WRONG
-        .mipi_line_num = 2,                
+        .mipi_line_num = 2,   
+        .config_file_3a = "GC5035_1280x720_raw10",  //3aconfig_GC5035_1280x720_raw10.json		
         .preg_data = (void *)"gc5035 sensor liner mode 1280*720@30",
     },
 #if 0
@@ -112,7 +117,8 @@ static struct vvcam_mode_info pgc5035_mode_info[] = {
         .bit_width = 10,
         .bayer_pattern = BAYER_RGGB,
         .mipi_phy_freq = 438, //COULD BE WRONG
-        .mipi_line_num = 2,          
+        .mipi_line_num = 2,    
+        .config_file_3a = "GC5035_1280x720_raw10",  //3aconfig_GC5035_1280x720_raw10.json		
         .preg_data = (void *)"gc5035 sensor liner mode 1280*720@60",
     }
 #endif

+ 28 - 5
drivers/IMX219/3aconfig_IMX219.json

@@ -8,10 +8,10 @@
             "classname" : "Aev2",
             "enable" : true,
             "motionThreshold" : 0.5,
-            "roiWeight" : 0.6,
-            "motionFilter" : 0.5,
-            "maxSensorAgain" : 10.66,
-            "maxSensorDgain" : 15.85,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
             "maxIspDgain" : 2.5,
             "setPoint" : 50,
             "roi_start" : 8,
@@ -62,7 +62,11 @@
             "indoor" : [1, 1, 1, 1, 1, 1, 1],
             "outdoor" : [1, 1, 1, 1, 1, 1, 1],
             "transition" : [1, 1, 1, 1, 1, 1, 1],
-            "avg" : 0
+            "lsc_ratio":{
+                "gains" : [1, 2, 4, 8, 16, 32],
+                "vignetting" : [1, 1, 1, 0.9, 0.8, 0.7]
+            },
+            "avg" : 0.0
         },
         {
             "classname" : "IspController",
@@ -512,6 +516,25 @@
                     "blc" : [64, 64]
                 }
             ]
+        },
+        {
+            "classname" : "AGe",
+            "forcecreate" : true,
+            "enable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                }
+            ]
         }
     ]
 }

+ 540 - 0
drivers/IMX219/3aconfig_IMX219_1920x1080_raw10.json

@@ -0,0 +1,540 @@
+{
+    "root" : [
+        {
+            "classname" : "Aev1",
+            "enable" : false
+        },
+        {
+            "classname" : "Aev2",
+            "enable" : true,
+            "motionThreshold" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter" : 0.5,
+            "maxSensorAgain" : 10.66,
+            "maxSensorDgain" : 15.85,
+            "maxIspDgain" : 2.5,
+            "setPoint" : 50,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5
+        },
+        {
+            "classname" : "Aehdr",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter" : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 30
+        },
+        {
+            "classname" : "AdaptiveAe",
+            "enable" : false,
+            "motionThreshold" : 0.7,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter" : 0.5,
+            "targetFilter" : 0.5,
+            "wdrContrast.min" : 10,
+            "wdrContrast.max" : 110,
+            "lowlight" : {
+                "linear_repress" : [1, 0.8, 0.6, 0.4, 0.4],
+                "linear_gain" : [4, 8, 16, 32, 100],
+                "hdr_repress" : [1, 0.8, 0.8, 0.8, 0.8],
+                "hdr_gain" : [4, 8, 16, 32, 100]
+            },
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 50
+        },
+        {
+            "classname" : "Awbv2",
+            "enable" : true,
+            "illuorder" : "A, D50, D65, D75, TL84, F12, CWF",
+            "indoor" : [1, 1, 1, 1, 1, 1, 1],
+            "outdoor" : [1, 1, 1, 1, 1, 1, 1],
+            "transition" : [1, 1, 1, 1, 1, 1, 1],
+            "lsc_ratio":{
+                "gains" : [1, 2, 4, 8, 16, 32],
+                "vignetting" : [1, 1, 1, 0.9, 0.8, 0.7]
+            },
+            "avg" : 0.0
+        },
+        {
+            "classname" : "IspController",
+            "enable" : true
+        },
+        {
+            "classname" : "AutoHdr",
+            "enable" : false
+        },
+        {
+            "classname" : "DciHist",
+            "enable" : false,
+            "gaussMeanPos" : 64,
+            "gaussSigmaPos" : 128,
+            "gaussAmpPos" : 1,
+            "gaussMeanNeg" : 0,
+            "gaussSigmaNeg" : 128,
+            "gaussAmpNeg" : 1
+        },
+        {
+            "classname" : "SensorController",
+            "enable" : true
+        },
+        {
+            "classname" : "AGamma64",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [18, 35, 53, 70, 86, 103, 120, 136, 153, 169, 186, 202, 219, 235, 251, 267, 283, 300, 316, 332, 348, 364, 380, 396, 412, 428, 444, 460, 476, 491, 507, 523, 539, 555, 571, 586, 602, 618, 634, 649, 665, 681, 696, 712, 728, 743, 759, 775, 790, 806, 821, 837, 853, 868, 884, 899, 915, 930, 946, 961, 977, 992, 1008, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ACproc",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1, 1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0],
+                    "saturation" : [1, 1, 1, 1, 1, 1],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1, 1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0],
+                    "saturation" : [1, 1, 1, 1, 1, 1],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                }
+            ]
+        },
+        {
+            "classname" : "Aee",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1000, 500, 200]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [8000, 8000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1500, 600, 200]
+                }
+            ]
+        },
+        {
+            "classname" : "ACa",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enableCA" : [0, 0, 0, 0, 0, 0],
+                    "enableDCI" : [1, 1, 1, 1, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1023, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enableCA" : [0, 0, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ADmsc2",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "demoire_enable" : true,		
+            "demoire_area_thr" : 3,
+            "demoire_sat_shrink" : 5,
+            "demoire_r2" : 256,
+            "demoire_r1" : 0,           
+		    "demoire_t2_shift" : 2,
+            "demoire_t1" : 180,
+            "demoire_edge_r2" : 256,
+            "demoire_edge_r1" : 20,
+            "demoire_edge_t2_shift" : 4,
+            "demoire_edge_t1" :20,	
+            "depurple_enable" : true,		
+            "depurple_red_sat" : true,	
+            "depurple_blue_sat" : true,	
+            "depurple_sat_shrink" : 8,				
+            "depurple_thr" : 8,
+            "skin_enable" : false,			
+            "cb_thr_max_2047" : 10,
+            "cb_thr_min_2047" : 8,
+            "cr_thr_max_2047" : 10,
+            "cr_thr_min_2047" : 8,
+            "y_thr_max_2047" : 10,
+            "y_thr_min_2047" : 8,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [1, 1, 1, 1, 1, 1],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [10, 10, 10, 10, 10, 10],
+                    "facwhite" : [10, 10, 10, 10, 10, 10],
+                    "maxblack" : [20, 20, 20, 20, 20, 20],
+                    "maxwhite" : [20, 20, 20, 20, 20, 20],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],					
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [0, 0, 0, 0, 0, 0],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [200, 200, 100, 50, 20, 20],
+                    "facwhite" : [200, 200, 150, 80, 40, 20],
+                    "maxblack" : [200, 200, 100, 100, 100, 100],
+                    "maxwhite" : [200, 200, 200, 200, 200, 200],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],				
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                }
+            ]
+        },
+        {
+            "classname" : "AWdr4",
+            "forcecreate" : true,
+            "enable" : false,
+	    "disable" : true,
+            "backlight" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                }
+            ],
+            "entropy_slope" : 200,
+            "entropy_base" : 700,
+            "entropy" : [0, 0, 0, 2, 3, 6, 11, 22, 39, 67, 111, 177, 227, 266, 321, 355, 377, 355, 221, 0],
+            "gamma_down" : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 9, 16, 36, 64, 136, 256, 576, 1023],
+            "gamma_up" : [0, 283121, 330313, 377512, 424723, 471961, 519250, 566650, 614235, 662241, 711077, 761540, 792420, 815280, 849436, 875575, 913530, 948975, 1002792, 1048575],
+            "?gamma_up" : [0, 1024, 34837, 56737, 82912, 116814, 162079, 223337, 306767, 420749, 576707, 735048, 745499, 755950, 776852, 797754, 839557, 881361, 964968, 1048575],
+            "gamma_pre" : [0, 31514, 36815, 42173, 47646, 53350, 59514, 66602, 75530, 88145, 108135, 142869, 175428, 207095, 269144, 330303, 442139, 571475, 810472, 1048575]
+        },
+        {
+            "classname" : "A3dnrv3",
+            "forcecreate" : false,
+            "enable" : false,
+	    "disable" : false,
+            "autonoiseLevel": true,
+            "tnr_en" : false,
+            "nlm_en" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                }
+            ]
+        },
+        {
+            "classname" : "A2dnrv5",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [90, 90, 90, 90, 90, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [90, 90, 90, 90, 90, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                }
+            ]
+        },
+        {
+            "classname" : "ADpf",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.1, 0.2, 0.4, 0.7, 1, 1.5, 2, 2.5, 3, 3.5],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [1, 1, 1, 1, 1, 1, 1, 2, 4, 16],
+                    "Div" : [64, 64, 64, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [1, 1, 2, 2, 3, 3, 4, 4, 4, 4],
+                    "sigma_rb" : [1, 1, 2, 2, 3, 3, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [16, 16, 16, 16, 16, 16, 16, 16, 16, 16],
+                    "Div" : [65, 65, 65, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "sigma_rb" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ABlc",
+            "forcecreate" : true,
+            "enable" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "blc" : [64, 64]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "blc" : [64, 64]
+                }
+            ]
+        },
+        {
+            "classname" : "AGe",
+            "forcecreate" : true,
+            "enable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                }
+            ]
+        }
+    ]
+}

+ 1 - 0
drivers/IMX219/IMX219.c

@@ -52,6 +52,7 @@ static struct vvcam_mode_info pimx219_mode_info[] = {
         .bayer_pattern = BAYER_RGGB,
         .mipi_phy_freq = 912, /* Pixel rate is fixed at 182.4M for all the modes */
         .mipi_line_num = 2,
+        .config_file_3a = "IMX219_1920x1080_raw10",  //3aconfig_IMX219_1920x1080_raw10.json
         .preg_data = (void *)"imx219 sensor liner mode 1920*1080@30",
     },
 };

+ 540 - 0
drivers/IMX334/3aconfig_IMX334_3840x2160_raw12.json

@@ -0,0 +1,540 @@
+{
+    "root" : [
+        {
+            "classname" : "Aev1",
+            "enable" : false
+        },
+        {
+            "classname" : "Aev2",
+            "enable" : true,
+            "motionThreshold" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 2.5,
+            "setPoint" : 50,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5
+        },
+        {
+            "classname" : "Aehdr",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter" : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 30
+        },
+        {
+            "classname" : "AdaptiveAe",
+            "enable" : false,
+            "motionThreshold" : 0.7,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter" : 0.5,
+            "targetFilter" : 0.5,
+            "wdrContrast.min" : 10,
+            "wdrContrast.max" : 110,
+            "lowlight" : {
+                "linear_repress" : [1, 0.8, 0.6, 0.4, 0.4],
+                "linear_gain" : [4, 8, 16, 32, 100],
+                "hdr_repress" : [1, 0.8, 0.8, 0.8, 0.8],
+                "hdr_gain" : [4, 8, 16, 32, 100]
+            },
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 50
+        },
+        {
+            "classname" : "Awbv2",
+            "enable" : true,
+            "illuorder" : "A, D50, D65, D75, TL84, F12, CWF",
+            "indoor" : [1, 1, 1, 1, 1, 1, 1],
+            "outdoor" : [1, 1, 1, 1, 1, 1, 1],
+            "transition" : [1, 1, 1, 1, 1, 1, 1],
+            "lsc_ratio":{
+                "gains" : [1, 2, 4, 8, 16, 32],
+                "vignetting" : [1, 1, 1, 0.9, 0.8, 0.7]
+            },
+            "avg" : 0.0
+        },
+        {
+            "classname" : "IspController",
+            "enable" : true
+        },
+        {
+            "classname" : "AutoHdr",
+            "enable" : false
+        },
+        {
+            "classname" : "DciHist",
+            "enable" : false,
+            "gaussMeanPos" : 64,
+            "gaussSigmaPos" : 128,
+            "gaussAmpPos" : 1,
+            "gaussMeanNeg" : 0,
+            "gaussSigmaNeg" : 128,
+            "gaussAmpNeg" : 1
+        },
+        {
+            "classname" : "SensorController",
+            "enable" : true
+        },
+        {
+            "classname" : "AGamma64",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [18, 35, 53, 70, 86, 103, 120, 136, 153, 169, 186, 202, 219, 235, 251, 267, 283, 300, 316, 332, 348, 364, 380, 396, 412, 428, 444, 460, 476, 491, 507, 523, 539, 555, 571, 586, 602, 618, 634, 649, 665, 681, 696, 712, 728, 743, 759, 775, 790, 806, 821, 837, 853, 868, 884, 899, 915, 930, 946, 961, 977, 992, 1008, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ACproc",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1, 1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0],
+                    "saturation" : [1, 1, 1, 1, 1, 1],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1, 1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0],
+                    "saturation" : [1, 1, 1, 1, 1, 1],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                }
+            ]
+        },
+        {
+            "classname" : "Aee",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1000, 500, 200]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [8000, 8000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1500, 600, 200]
+                }
+            ]
+        },
+        {
+            "classname" : "ACa",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enableCA" : [0, 0, 0, 0, 0, 0],
+                    "enableDCI" : [1, 1, 1, 1, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1023, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enableCA" : [0, 0, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ADmsc2",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "demoire_enable" : true,		
+            "demoire_area_thr" : 3,
+            "demoire_sat_shrink" : 5,
+            "demoire_r2" : 256,
+            "demoire_r1" : 0,           
+		    "demoire_t2_shift" : 2,
+            "demoire_t1" : 180,
+            "demoire_edge_r2" : 256,
+            "demoire_edge_r1" : 20,
+            "demoire_edge_t2_shift" : 4,
+            "demoire_edge_t1" :20,	
+            "depurple_enable" : true,		
+            "depurple_red_sat" : true,	
+            "depurple_blue_sat" : true,	
+            "depurple_sat_shrink" : 8,				
+            "depurple_thr" : 8,
+            "skin_enable" : false,			
+            "cb_thr_max_2047" : 10,
+            "cb_thr_min_2047" : 8,
+            "cr_thr_max_2047" : 10,
+            "cr_thr_min_2047" : 8,
+            "y_thr_max_2047" : 10,
+            "y_thr_min_2047" : 8,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [1, 1, 1, 1, 1, 1],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [10, 10, 10, 10, 10, 10],
+                    "facwhite" : [10, 10, 10, 10, 10, 10],
+                    "maxblack" : [20, 20, 20, 20, 20, 20],
+                    "maxwhite" : [20, 20, 20, 20, 20, 20],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],					
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [0, 0, 0, 0, 0, 0],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [200, 200, 100, 50, 20, 20],
+                    "facwhite" : [200, 200, 150, 80, 40, 20],
+                    "maxblack" : [200, 200, 100, 100, 100, 100],
+                    "maxwhite" : [200, 200, 200, 200, 200, 200],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],				
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                }
+            ]
+        },
+        {
+            "classname" : "AWdr4",
+            "forcecreate" : true,
+            "enable" : false,
+	    "disable" : true,
+            "backlight" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                }
+            ],
+            "entropy_slope" : 200,
+            "entropy_base" : 700,
+            "entropy" : [0, 0, 0, 2, 3, 6, 11, 22, 39, 67, 111, 177, 227, 266, 321, 355, 377, 355, 221, 0],
+            "gamma_down" : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 9, 16, 36, 64, 136, 256, 576, 1023],
+            "gamma_up" : [0, 283121, 330313, 377512, 424723, 471961, 519250, 566650, 614235, 662241, 711077, 761540, 792420, 815280, 849436, 875575, 913530, 948975, 1002792, 1048575],
+            "?gamma_up" : [0, 1024, 34837, 56737, 82912, 116814, 162079, 223337, 306767, 420749, 576707, 735048, 745499, 755950, 776852, 797754, 839557, 881361, 964968, 1048575],
+            "gamma_pre" : [0, 31514, 36815, 42173, 47646, 53350, 59514, 66602, 75530, 88145, 108135, 142869, 175428, 207095, 269144, 330303, 442139, 571475, 810472, 1048575]
+        },
+        {
+            "classname" : "A3dnrv3",
+            "forcecreate" : false,
+            "enable" : false,
+	    "disable" : false,
+            "autonoiseLevel": true,
+            "tnr_en" : false,
+            "nlm_en" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                }
+            ]
+        },
+        {
+            "classname" : "A2dnrv5",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [90, 90, 90, 90, 90, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [90, 90, 90, 90, 90, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                }
+            ]
+        },
+        {
+            "classname" : "ADpf",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.1, 0.2, 0.4, 0.7, 1, 1.5, 2, 2.5, 3, 3.5],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [1, 1, 1, 1, 1, 1, 1, 2, 4, 16],
+                    "Div" : [64, 64, 64, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [1, 1, 2, 2, 3, 3, 4, 4, 4, 4],
+                    "sigma_rb" : [1, 1, 2, 2, 3, 3, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [16, 16, 16, 16, 16, 16, 16, 16, 16, 16],
+                    "Div" : [65, 65, 65, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "sigma_rb" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ABlc",
+            "forcecreate" : true,
+            "enable" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "blc" : [256, 256]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "blc" : [256, 256]
+                }
+            ]
+        },
+        {
+            "classname" : "AGe",
+            "forcecreate" : true,
+            "enable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                }
+            ]
+        }
+    ]
+}

+ 540 - 0
drivers/IMX334/3aconfig_IMX334_3864x2180_raw12.json

@@ -0,0 +1,540 @@
+{
+    "root" : [
+        {
+            "classname" : "Aev1",
+            "enable" : false
+        },
+        {
+            "classname" : "Aev2",
+            "enable" : true,
+            "motionThreshold" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 2.5,
+            "setPoint" : 50,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5
+        },
+        {
+            "classname" : "Aehdr",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter" : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 30
+        },
+        {
+            "classname" : "AdaptiveAe",
+            "enable" : false,
+            "motionThreshold" : 0.7,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter" : 0.5,
+            "targetFilter" : 0.5,
+            "wdrContrast.min" : 10,
+            "wdrContrast.max" : 110,
+            "lowlight" : {
+                "linear_repress" : [1, 0.8, 0.6, 0.4, 0.4],
+                "linear_gain" : [4, 8, 16, 32, 100],
+                "hdr_repress" : [1, 0.8, 0.8, 0.8, 0.8],
+                "hdr_gain" : [4, 8, 16, 32, 100]
+            },
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 50
+        },
+        {
+            "classname" : "Awbv2",
+            "enable" : true,
+            "illuorder" : "A, D50, D65, D75, TL84, F12, CWF",
+            "indoor" : [1, 1, 1, 1, 1, 1, 1],
+            "outdoor" : [1, 1, 1, 1, 1, 1, 1],
+            "transition" : [1, 1, 1, 1, 1, 1, 1],
+            "lsc_ratio":{
+                "gains" : [1, 2, 4, 8, 16, 32],
+                "vignetting" : [1, 1, 1, 0.9, 0.8, 0.7]
+            },
+            "avg" : 0.0
+        },
+        {
+            "classname" : "IspController",
+            "enable" : true
+        },
+        {
+            "classname" : "AutoHdr",
+            "enable" : false
+        },
+        {
+            "classname" : "DciHist",
+            "enable" : false,
+            "gaussMeanPos" : 64,
+            "gaussSigmaPos" : 128,
+            "gaussAmpPos" : 1,
+            "gaussMeanNeg" : 0,
+            "gaussSigmaNeg" : 128,
+            "gaussAmpNeg" : 1
+        },
+        {
+            "classname" : "SensorController",
+            "enable" : true
+        },
+        {
+            "classname" : "AGamma64",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [18, 35, 53, 70, 86, 103, 120, 136, 153, 169, 186, 202, 219, 235, 251, 267, 283, 300, 316, 332, 348, 364, 380, 396, 412, 428, 444, 460, 476, 491, 507, 523, 539, 555, 571, 586, 602, 618, 634, 649, 665, 681, 696, 712, 728, 743, 759, 775, 790, 806, 821, 837, 853, 868, 884, 899, 915, 930, 946, 961, 977, 992, 1008, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ACproc",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1, 1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0],
+                    "saturation" : [1, 1, 1, 1, 1, 1],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1, 1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0],
+                    "saturation" : [1, 1, 1, 1, 1, 1],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                }
+            ]
+        },
+        {
+            "classname" : "Aee",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1000, 500, 200]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [8000, 8000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1500, 600, 200]
+                }
+            ]
+        },
+        {
+            "classname" : "ACa",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enableCA" : [0, 0, 0, 0, 0, 0],
+                    "enableDCI" : [1, 1, 1, 1, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1023, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enableCA" : [0, 0, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ADmsc2",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "demoire_enable" : true,		
+            "demoire_area_thr" : 3,
+            "demoire_sat_shrink" : 5,
+            "demoire_r2" : 256,
+            "demoire_r1" : 0,           
+		    "demoire_t2_shift" : 2,
+            "demoire_t1" : 180,
+            "demoire_edge_r2" : 256,
+            "demoire_edge_r1" : 20,
+            "demoire_edge_t2_shift" : 4,
+            "demoire_edge_t1" :20,	
+            "depurple_enable" : true,		
+            "depurple_red_sat" : true,	
+            "depurple_blue_sat" : true,	
+            "depurple_sat_shrink" : 8,				
+            "depurple_thr" : 8,
+            "skin_enable" : false,			
+            "cb_thr_max_2047" : 10,
+            "cb_thr_min_2047" : 8,
+            "cr_thr_max_2047" : 10,
+            "cr_thr_min_2047" : 8,
+            "y_thr_max_2047" : 10,
+            "y_thr_min_2047" : 8,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [1, 1, 1, 1, 1, 1],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [10, 10, 10, 10, 10, 10],
+                    "facwhite" : [10, 10, 10, 10, 10, 10],
+                    "maxblack" : [20, 20, 20, 20, 20, 20],
+                    "maxwhite" : [20, 20, 20, 20, 20, 20],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],					
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [0, 0, 0, 0, 0, 0],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [200, 200, 100, 50, 20, 20],
+                    "facwhite" : [200, 200, 150, 80, 40, 20],
+                    "maxblack" : [200, 200, 100, 100, 100, 100],
+                    "maxwhite" : [200, 200, 200, 200, 200, 200],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],				
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                }
+            ]
+        },
+        {
+            "classname" : "AWdr4",
+            "forcecreate" : true,
+            "enable" : false,
+	    "disable" : true,
+            "backlight" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                }
+            ],
+            "entropy_slope" : 200,
+            "entropy_base" : 700,
+            "entropy" : [0, 0, 0, 2, 3, 6, 11, 22, 39, 67, 111, 177, 227, 266, 321, 355, 377, 355, 221, 0],
+            "gamma_down" : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 9, 16, 36, 64, 136, 256, 576, 1023],
+            "gamma_up" : [0, 283121, 330313, 377512, 424723, 471961, 519250, 566650, 614235, 662241, 711077, 761540, 792420, 815280, 849436, 875575, 913530, 948975, 1002792, 1048575],
+            "?gamma_up" : [0, 1024, 34837, 56737, 82912, 116814, 162079, 223337, 306767, 420749, 576707, 735048, 745499, 755950, 776852, 797754, 839557, 881361, 964968, 1048575],
+            "gamma_pre" : [0, 31514, 36815, 42173, 47646, 53350, 59514, 66602, 75530, 88145, 108135, 142869, 175428, 207095, 269144, 330303, 442139, 571475, 810472, 1048575]
+        },
+        {
+            "classname" : "A3dnrv3",
+            "forcecreate" : false,
+            "enable" : false,
+	    "disable" : false,
+            "autonoiseLevel": true,
+            "tnr_en" : false,
+            "nlm_en" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                }
+            ]
+        },
+        {
+            "classname" : "A2dnrv5",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [90, 90, 90, 90, 90, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [90, 90, 90, 90, 90, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                }
+            ]
+        },
+        {
+            "classname" : "ADpf",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.1, 0.2, 0.4, 0.7, 1, 1.5, 2, 2.5, 3, 3.5],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [1, 1, 1, 1, 1, 1, 1, 2, 4, 16],
+                    "Div" : [64, 64, 64, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [1, 1, 2, 2, 3, 3, 4, 4, 4, 4],
+                    "sigma_rb" : [1, 1, 2, 2, 3, 3, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [16, 16, 16, 16, 16, 16, 16, 16, 16, 16],
+                    "Div" : [65, 65, 65, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "sigma_rb" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ABlc",
+            "forcecreate" : true,
+            "enable" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "blc" : [256, 256]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "blc" : [256, 256]
+                }
+            ]
+        },
+        {
+            "classname" : "AGe",
+            "forcecreate" : true,
+            "enable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                }
+            ]
+        }
+    ]
+}

+ 2 - 0
drivers/IMX334/IMX334.c

@@ -66,6 +66,7 @@ static struct vvcam_mode_info pIMX334_mode_info[] = {
 		.bayer_pattern = 3,
         .mipi_phy_freq = 800, //mbps
         .mipi_line_num = 4,
+        .config_file_3a = "IMX334_3864x2180_raw12", //3aconfig_IMX334_3864x2180_raw12.json
         .preg_data = (void *)"imx334 3864x2180",
 	},
     /*
@@ -214,6 +215,7 @@ static RESULT IMX334_IsiSensorGetClkIss(IsiSensorHandle_t handle, uint32_t * pcl
 static RESULT IMX334_IsiConfigSensorSCCBIss(IsiSensorHandle_t handle)
 {
     RESULT result = RET_SUCCESS;
+    return result;
     int ret = 0;
     TRACE(IMX334_INFO, "%s (enter)\n", __func__);
 

File diff suppressed because it is too large
+ 674 - 0
drivers/IMX334/IMX334_3840x2160.xml


+ 14 - 14
drivers/IMX334/IMX334_3864x2180.xml

@@ -663,10 +663,10 @@
                [ 15]
             </LSC_Yo>
             <LSC_SECT_SIZE_X index="1" type="double" size="[1 8]">
-               [154 115 115 115 115 116 115 115]
+               [242 242 241 241 241 241 242 242]
             </LSC_SECT_SIZE_X>
             <LSC_SECT_SIZE_Y index="1" type="double" size="[1 8]">
-               [87 65 66 65 65 65 66 65]
+               [137 136 136 136 136 136 136 137]
             </LSC_SECT_SIZE_Y>
             <vignetting index="1" type="double" size="[1 1]">
                [ 100]
@@ -707,10 +707,10 @@
                [ 15]
             </LSC_Yo>
             <LSC_SECT_SIZE_X index="1" type="double" size="[1 8]">
-               [154 115 115 115 115 116 115 115]
+               [242 242 241 241 241 241 242 242]
             </LSC_SECT_SIZE_X>
             <LSC_SECT_SIZE_Y index="1" type="double" size="[1 8]">
-               [87 65 66 65 65 65 66 65]
+               [137 136 136 136 136 136 136 137]
             </LSC_SECT_SIZE_Y>
             <vignetting index="1" type="double" size="[1 1]">
                [ 100]
@@ -751,10 +751,10 @@
                [ 15]
             </LSC_Yo>
             <LSC_SECT_SIZE_X index="1" type="double" size="[1 8]">
-               [154 115 115 115 115 116 115 115]
+               [242 242 241 241 241 241 242 242]
             </LSC_SECT_SIZE_X>
             <LSC_SECT_SIZE_Y index="1" type="double" size="[1 8]">
-               [87 65 66 65 65 65 66 65]
+               [137 136 136 136 136 136 136 137]
             </LSC_SECT_SIZE_Y>
             <vignetting index="1" type="double" size="[1 1]">
                [ 100]
@@ -795,10 +795,10 @@
                [ 15]
             </LSC_Yo>
             <LSC_SECT_SIZE_X index="1" type="double" size="[1 8]">
-               [154 115 115 115 115 116 115 115]
+               [242 242 241 241 241 241 242 242]
             </LSC_SECT_SIZE_X>
             <LSC_SECT_SIZE_Y index="1" type="double" size="[1 8]">
-               [87 65 66 65 65 65 66 65]
+               [137 136 136 136 136 136 136 137]
             </LSC_SECT_SIZE_Y>
             <vignetting index="1" type="double" size="[1 1]">
                [ 100]
@@ -839,10 +839,10 @@
                [ 15]
             </LSC_Yo>
             <LSC_SECT_SIZE_X index="1" type="double" size="[1 8]">
-               [154 115 115 115 115 116 115 115]
+               [242 242 241 241 241 241 242 242]
             </LSC_SECT_SIZE_X>
             <LSC_SECT_SIZE_Y index="1" type="double" size="[1 8]">
-               [87 65 66 65 65 65 66 65]
+               [137 136 136 136 136 136 136 137]
             </LSC_SECT_SIZE_Y>
             <vignetting index="1" type="double" size="[1 1]">
                [ 100]
@@ -883,10 +883,10 @@
                [ 15]
             </LSC_Yo>
             <LSC_SECT_SIZE_X index="1" type="double" size="[1 8]">
-               [154 115 115 115 115 116 115 115]
+               [242 242 241 241 241 241 242 242]
             </LSC_SECT_SIZE_X>
             <LSC_SECT_SIZE_Y index="1" type="double" size="[1 8]">
-               [87 65 66 65 65 65 66 65]
+               [137 136 136 136 136 136 136 137]
             </LSC_SECT_SIZE_Y>
             <vignetting index="1" type="double" size="[1 1]">
                [ 100]
@@ -927,10 +927,10 @@
                [ 15]
             </LSC_Yo>
             <LSC_SECT_SIZE_X index="1" type="double" size="[1 8]">
-               [154 115 115 115 115 116 115 115]
+               [242 242 241 241 241 241 242 242]
             </LSC_SECT_SIZE_X>
             <LSC_SECT_SIZE_Y index="1" type="double" size="[1 8]">
-               [87 65 66 65 65 65 66 65]
+               [137 136 136 136 136 136 136 137]
             </LSC_SECT_SIZE_Y>
             <vignetting index="1" type="double" size="[1 1]">
                [ 100]

+ 541 - 0
drivers/OV12870/3aconfig_OV12870.json

@@ -0,0 +1,541 @@
+	{
+    "root" : [
+        {
+            "classname" : "Aev1",
+            "enable" : false
+        },
+        {
+            "classname" : "Aev2",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "roiWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 2.6,
+            "setPoint" : 30,
+            "roi_start" : 12,
+            "roi_end" : 20,
+            "roi_weight" : 1
+        },
+        {
+            "classname" : "Aehdr",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 30
+        },
+        {
+            "classname" : "AdaptiveAe",
+            "enable" : true,
+            "motionThreshold" : 0.7,
+            "roi_start" : 7,
+            "roi_end" : 20,
+            "roi_weight" : 1,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "targetFilter"  : 0.5,
+            "wdrContrast.min" : 150,
+            "wdrContrast.max" : 150,
+            "lowlight" : {
+                "linear_repress" : [0.8, 0.7, 0.5, 0.5, 0.4],
+                "linear_gain" : [4, 8, 16, 32, 100],
+                "hdr_repress" : [1, 0.8, 0.8, 0.8, 0.8],
+                "hdr_gain" : [4, 8, 16, 32, 100]
+            },
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 1,
+            "setPoint" : 60
+        },
+        {
+            "classname" : "Awbv2",
+            "enable" : true,
+            "illuorder" : "A, D50, D65, D75, TL84, F12, CWF",
+            "indoor" : [1, 1, 1, 1, 1, 1, 1],
+            "outdoor" : [1, 1, 1, 1, 1, 1, 1],
+            "transition" : [1, 1, 1, 1, 1, 1, 1],
+            "lsc_ratio":{
+                "gains" : [1, 2, 4, 8, 16, 32],
+                "vignetting" : [1, 1, 1, 0.9, 0.8, 0.7]
+            },
+            "avg" : 0.0
+        },
+        {
+            "classname" : "IspController",
+            "enable" : true
+        },
+        {
+            "classname" : "AutoHdr",
+            "enable" : false
+        },
+        {
+            "classname" : "DciHist",
+            "enable" : false,
+            "gaussMeanPos" : 64,
+            "gaussSigmaPos" : 128,
+            "gaussAmpPos" : 1.0,
+            "gaussMeanNeg" : 0,
+            "gaussSigmaNeg" : 128,
+            "gaussAmpNeg" : 1.0
+        },
+        {
+            "classname" : "SensorController",
+            "enable" : true
+        },
+        {
+            "classname" : "AGamma64",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [18, 35, 53, 70, 86, 103, 120, 136, 153, 169, 186, 202, 219, 235, 251, 267, 283, 300, 316, 332, 348, 364, 380, 396, 412, 428, 444, 460, 476, 491, 507, 523, 539, 555, 571, 586, 602, 618, 634, 649, 665, 681, 696, 712, 728, 743, 759, 775, 790, 806, 821, 837, 853, 868, 884, 899, 914, 930, 945, 961, 977, 992, 1008, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ACproc",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1.2, 1.1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0, 0],
+                    "saturation" : [1.2, 1.05, 0.92, 0.80, 0.75, 0.6],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1.0, 1.0, 1.3, 1.3, 1.5, 1.85],
+                    "brightness" : [-12, -12, -24, -30, -16, 0],
+                    "saturation" : [1.25, 1.0, 0.9, 0.8, 0.7, 0.6],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                }
+            ]
+        },
+        {
+            "classname" : "Aee",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [1024, 1024, 1024, 1024, 1024, 1024],
+                    "ydown" : [1024, 1024, 1024, 1024, 1024, 1024],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [1000, 1000, 1000, 1000, 500, 200]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [8000, 8000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1500, 600, 200]
+                }
+            ]
+        },
+        {
+            "classname" : "ACa",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enableCA" : [1, 1, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1023, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enableCA" : [0, 0, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ], 
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+			            [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ADmsc2",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "demoire_enable" : true,			
+            "demoire_area_thr" : 16,
+            "demoire_sat_shrink" : 8,
+            "demoire_r2" : 256,
+            "demoire_r1" : 0,           
+		    "demoire_t2_shift" : 2,
+            "demoire_t1" : 180,
+            "demoire_edge_r2" : 256,
+            "demoire_edge_r1" : 20,
+            "demoire_edge_t2_shift" : 4,
+            "demoire_edge_t1" :20,	
+            "depurple_enable" : true,
+            "depurple_red_sat" : true,	
+            "depurple_blue_sat" : true,	
+            "depurple_sat_shrink" : 8,				
+            "depurple_thr" : 40,
+            "skin_enable" : true,			
+            "cb_thr_max_2047" : 10,
+            "cb_thr_min_2047" : 8,
+            "cr_thr_max_2047" : 10,
+            "cr_thr_min_2047" : 8,
+            "y_thr_max_2047" : 10,
+            "y_thr_min_2047" : 8,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [1, 1, 1, 1, 1, 1],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [70, 60, 40, 20, 20, 0],
+                    "facwhite" : [70, 60, 60, 40, 20, 0],
+                    "maxblack" : [100, 100, 100, 100, 100, 100],
+                    "maxwhite" : [100, 100, 100, 100, 100, 100],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [5, 5, 5, 5, 5, 5],
+                    "gsharpen" : [8, 8, 8, 8, 8, 8],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],					
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [0, 0, 0, 0, 0, 0],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [200, 200, 100, 50, 20, 20],
+                    "facwhite" : [200, 200, 150, 80, 40, 20],
+                    "maxblack" : [200, 200, 100, 100, 100, 100],
+                    "maxwhite" : [200, 200, 200, 200, 200, 200],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],				
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                }
+            ]
+        },
+        {
+            "classname" : "AWdr4",
+            "forcecreate" : true,
+            "enable" : false,
+	    "disable" : true,
+            "backlight" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                }
+            ],
+            "entropy_slope": 200,
+            "entropy_base": 700,
+            "entropy" : [0, 0, 0, 2, 3, 6, 11, 22, 39, 67, 111, 177, 227, 266, 321, 355, 377, 355, 221, 0],
+            "gamma_down" : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 9, 16, 36, 64, 136, 256, 576, 1023],
+            "gamma_up" : [0, 283121, 330313, 377512, 424723, 471961, 519250, 566650, 614235, 662241, 711077, 761540, 792420, 815280, 849436, 875575, 913530, 948975, 1002792, 1048575],
+            "?gamma_up" : [0, 1024, 34837, 56737, 82912, 116814, 162079, 223337, 306767, 420749, 576707, 735048, 745499, 755950, 776852, 797754, 839557, 881361, 964968, 1048575],
+            "gamma_pre" : [0, 31514, 36815, 42173, 47646, 53350, 59514, 66602, 75530, 88145, 108135, 142869, 175428, 207095, 269144, 330303, 442139, 571475, 810472, 1048575]
+        },
+        {
+
+            "classname" : "A3dnrv3",
+            "forcecreate" : false,
+            "enable" : false,
+	    "disable" : false,
+            "autonoiseLevel": true,
+            "tnr_en" : false,
+            "nlm_en" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [1, 1, 1, 1, 1, 1]
+                }
+            ]
+        },
+        {
+            "classname" : "A2dnrv5",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
+                    "sigma" : [2, 2, 2, 5, 6, 6, 11, 11, 11, 14],
+                    "blendstatic" : [100, 100, 100, 100, 100, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 90, 90, 100, 100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [100, 100, 100, 100, 100, 100, 100, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                }
+            ]
+        },
+        {
+            "classname" : "ADpf",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.1, 0.2, 0.4, 0.7, 1, 1.5, 2, 2.5, 3, 3.5],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [1, 1, 1, 1, 1, 1, 1, 2, 4, 16],
+                    "Div" : [64, 64, 64, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [2, 2, 3, 3, 3, 3, 4, 4, 4, 4],
+                    "sigma_rb" : [2, 2, 3, 3, 3, 3, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [16, 16, 16, 16, 16, 16, 16, 16, 16, 16],
+                    "Div" : [64, 64, 64, 64, 64, 64, 64, 64, 64, 64],
+                    "sigma_g" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "sigma_rb" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ABlc",
+            "forcecreate" : true,
+            "enable" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "blc" : [256, 256]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "blc" : [256, 256]
+                }
+            ]
+        },
+        {
+            "classname" : "AGe",
+            "forcecreate" : true,
+            "enable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                }
+            ]
+        }
+    ]
+}

+ 541 - 0
drivers/OV12870/3aconfig_OV12870_1920x1080_raw12.json

@@ -0,0 +1,541 @@
+	{
+    "root" : [
+        {
+            "classname" : "Aev1",
+            "enable" : false
+        },
+        {
+            "classname" : "Aev2",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 2.6,
+            "setPoint" : 30,
+            "roi_start" : 12,
+            "roi_end" : 20,
+            "roi_weight" : 1
+        },
+        {
+            "classname" : "Aehdr",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 30
+        },
+        {
+            "classname" : "AdaptiveAe",
+            "enable" : true,
+            "motionThreshold" : 0.7,
+            "roi_start" : 7,
+            "roi_end" : 20,
+            "roi_weight" : 1,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "targetFilter"  : 0.5,
+            "wdrContrast.min" : 150,
+            "wdrContrast.max" : 150,
+            "lowlight" : {
+                "linear_repress" : [0.8, 0.7, 0.5, 0.5, 0.4],
+                "linear_gain" : [4, 8, 16, 32, 100],
+                "hdr_repress" : [1, 0.8, 0.8, 0.8, 0.8],
+                "hdr_gain" : [4, 8, 16, 32, 100]
+            },
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 1,
+            "setPoint" : 60
+        },
+        {
+            "classname" : "Awbv2",
+            "enable" : true,
+            "illuorder" : "A, D50, D65, D75, TL84, F12, CWF",
+            "indoor" : [1, 1, 1, 1, 1, 1, 1],
+            "outdoor" : [1, 1, 1, 1, 1, 1, 1],
+            "transition" : [1, 1, 1, 1, 1, 1, 1],
+            "lsc_ratio":{
+                "gains" : [1, 2, 4, 8, 16, 32],
+                "vignetting" : [1, 1, 1, 0.9, 0.8, 0.7]
+            },
+            "avg" : 0.0
+        },
+        {
+            "classname" : "IspController",
+            "enable" : true
+        },
+        {
+            "classname" : "AutoHdr",
+            "enable" : false
+        },
+        {
+            "classname" : "DciHist",
+            "enable" : false,
+            "gaussMeanPos" : 64,
+            "gaussSigmaPos" : 128,
+            "gaussAmpPos" : 1.0,
+            "gaussMeanNeg" : 0,
+            "gaussSigmaNeg" : 128,
+            "gaussAmpNeg" : 1.0
+        },
+        {
+            "classname" : "SensorController",
+            "enable" : true
+        },
+        {
+            "classname" : "AGamma64",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [18, 35, 53, 70, 86, 103, 120, 136, 153, 169, 186, 202, 219, 235, 251, 267, 283, 300, 316, 332, 348, 364, 380, 396, 412, 428, 444, 460, 476, 491, 507, 523, 539, 555, 571, 586, 602, 618, 634, 649, 665, 681, 696, 712, 728, 743, 759, 775, 790, 806, 821, 837, 853, 868, 884, 899, 914, 930, 945, 961, 977, 992, 1008, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ACproc",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1.2, 1.1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0, 0],
+                    "saturation" : [1.2, 1.05, 0.92, 0.80, 0.75, 0.6],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1.0, 1.0, 1.3, 1.3, 1.5, 1.85],
+                    "brightness" : [-12, -12, -24, -30, -16, 0],
+                    "saturation" : [1.25, 1.0, 0.9, 0.8, 0.7, 0.6],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                }
+            ]
+        },
+        {
+            "classname" : "Aee",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [1024, 1024, 1024, 1024, 1024, 1024],
+                    "ydown" : [1024, 1024, 1024, 1024, 1024, 1024],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [1000, 1000, 1000, 1000, 500, 200]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [8000, 8000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1500, 600, 200]
+                }
+            ]
+        },
+        {
+            "classname" : "ACa",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enableCA" : [1, 1, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1023, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enableCA" : [0, 0, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ], 
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+			            [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ADmsc2",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "demoire_enable" : true,			
+            "demoire_area_thr" : 16,
+            "demoire_sat_shrink" : 8,
+            "demoire_r2" : 256,
+            "demoire_r1" : 0,           
+		    "demoire_t2_shift" : 2,
+            "demoire_t1" : 180,
+            "demoire_edge_r2" : 256,
+            "demoire_edge_r1" : 20,
+            "demoire_edge_t2_shift" : 4,
+            "demoire_edge_t1" :20,	
+            "depurple_enable" : true,
+            "depurple_red_sat" : true,	
+            "depurple_blue_sat" : true,	
+            "depurple_sat_shrink" : 8,				
+            "depurple_thr" : 40,
+            "skin_enable" : true,			
+            "cb_thr_max_2047" : 10,
+            "cb_thr_min_2047" : 8,
+            "cr_thr_max_2047" : 10,
+            "cr_thr_min_2047" : 8,
+            "y_thr_max_2047" : 10,
+            "y_thr_min_2047" : 8,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [1, 1, 1, 1, 1, 1],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [70, 60, 40, 20, 20, 0],
+                    "facwhite" : [70, 60, 60, 40, 20, 0],
+                    "maxblack" : [100, 100, 100, 100, 100, 100],
+                    "maxwhite" : [100, 100, 100, 100, 100, 100],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [5, 5, 5, 5, 5, 5],
+                    "gsharpen" : [8, 8, 8, 8, 8, 8],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],					
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [0, 0, 0, 0, 0, 0],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [200, 200, 100, 50, 20, 20],
+                    "facwhite" : [200, 200, 150, 80, 40, 20],
+                    "maxblack" : [200, 200, 100, 100, 100, 100],
+                    "maxwhite" : [200, 200, 200, 200, 200, 200],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],				
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                }
+            ]
+        },
+        {
+            "classname" : "AWdr4",
+            "forcecreate" : true,
+            "enable" : false,
+	    "disable" : true,
+            "backlight" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                }
+            ],
+            "entropy_slope": 200,
+            "entropy_base": 700,
+            "entropy" : [0, 0, 0, 2, 3, 6, 11, 22, 39, 67, 111, 177, 227, 266, 321, 355, 377, 355, 221, 0],
+            "gamma_down" : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 9, 16, 36, 64, 136, 256, 576, 1023],
+            "gamma_up" : [0, 283121, 330313, 377512, 424723, 471961, 519250, 566650, 614235, 662241, 711077, 761540, 792420, 815280, 849436, 875575, 913530, 948975, 1002792, 1048575],
+            "?gamma_up" : [0, 1024, 34837, 56737, 82912, 116814, 162079, 223337, 306767, 420749, 576707, 735048, 745499, 755950, 776852, 797754, 839557, 881361, 964968, 1048575],
+            "gamma_pre" : [0, 31514, 36815, 42173, 47646, 53350, 59514, 66602, 75530, 88145, 108135, 142869, 175428, 207095, 269144, 330303, 442139, 571475, 810472, 1048575]
+        },
+        {
+
+            "classname" : "A3dnrv3",
+            "forcecreate" : false,
+            "enable" : false,
+	    "disable" : false,
+            "autonoiseLevel": true,
+            "tnr_en" : false,
+            "nlm_en" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [1, 1, 1, 1, 1, 1]
+                }
+            ]
+        },
+        {
+            "classname" : "A2dnrv5",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
+                    "sigma" : [2, 2, 2, 5, 6, 6, 11, 11, 11, 14],
+                    "blendstatic" : [100, 100, 100, 100, 100, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 90, 90, 100, 100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [100, 100, 100, 100, 100, 100, 100, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                }
+            ]
+        },
+        {
+            "classname" : "ADpf",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.1, 0.2, 0.4, 0.7, 1, 1.5, 2, 2.5, 3, 3.5],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [1, 1, 1, 1, 1, 1, 1, 2, 4, 16],
+                    "Div" : [64, 64, 64, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [2, 2, 3, 3, 3, 3, 4, 4, 4, 4],
+                    "sigma_rb" : [2, 2, 3, 3, 3, 3, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [16, 16, 16, 16, 16, 16, 16, 16, 16, 16],
+                    "Div" : [64, 64, 64, 64, 64, 64, 64, 64, 64, 64],
+                    "sigma_g" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "sigma_rb" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ABlc",
+            "forcecreate" : true,
+            "enable" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "blc" : [256, 256]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "blc" : [256, 256]
+                }
+            ]
+        },
+        {
+            "classname" : "AGe",
+            "forcecreate" : true,
+            "enable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                }
+            ]
+        }
+    ]
+}

+ 541 - 0
drivers/OV12870/3aconfig_OV12870_4096x3072_raw12.json

@@ -0,0 +1,541 @@
+	{
+    "root" : [
+        {
+            "classname" : "Aev1",
+            "enable" : false
+        },
+        {
+            "classname" : "Aev2",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 2.6,
+            "setPoint" : 30,
+            "roi_start" : 12,
+            "roi_end" : 20,
+            "roi_weight" : 1
+        },
+        {
+            "classname" : "Aehdr",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 30
+        },
+        {
+            "classname" : "AdaptiveAe",
+            "enable" : true,
+            "motionThreshold" : 0.7,
+            "roi_start" : 7,
+            "roi_end" : 20,
+            "roi_weight" : 1,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "targetFilter"  : 0.5,
+            "wdrContrast.min" : 150,
+            "wdrContrast.max" : 150,
+            "lowlight" : {
+                "linear_repress" : [0.8, 0.7, 0.5, 0.5, 0.4],
+                "linear_gain" : [4, 8, 16, 32, 100],
+                "hdr_repress" : [1, 0.8, 0.8, 0.8, 0.8],
+                "hdr_gain" : [4, 8, 16, 32, 100]
+            },
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 1,
+            "setPoint" : 60
+        },
+        {
+            "classname" : "Awbv2",
+            "enable" : true,
+            "illuorder" : "A, D50, D65, D75, TL84, F12, CWF",
+            "indoor" : [1, 1, 1, 1, 1, 1, 1],
+            "outdoor" : [1, 1, 1, 1, 1, 1, 1],
+            "transition" : [1, 1, 1, 1, 1, 1, 1],
+            "lsc_ratio":{
+                "gains" : [1, 2, 4, 8, 16, 32],
+                "vignetting" : [1, 1, 1, 0.9, 0.8, 0.7]
+            },
+            "avg" : 0.0
+        },
+        {
+            "classname" : "IspController",
+            "enable" : true
+        },
+        {
+            "classname" : "AutoHdr",
+            "enable" : false
+        },
+        {
+            "classname" : "DciHist",
+            "enable" : false,
+            "gaussMeanPos" : 64,
+            "gaussSigmaPos" : 128,
+            "gaussAmpPos" : 1.0,
+            "gaussMeanNeg" : 0,
+            "gaussSigmaNeg" : 128,
+            "gaussAmpNeg" : 1.0
+        },
+        {
+            "classname" : "SensorController",
+            "enable" : true
+        },
+        {
+            "classname" : "AGamma64",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [18, 35, 53, 70, 86, 103, 120, 136, 153, 169, 186, 202, 219, 235, 251, 267, 283, 300, 316, 332, 348, 364, 380, 396, 412, 428, 444, 460, 476, 491, 507, 523, 539, 555, 571, 586, 602, 618, 634, 649, 665, 681, 696, 712, 728, 743, 759, 775, 790, 806, 821, 837, 853, 868, 884, 899, 914, 930, 945, 961, 977, 992, 1008, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ACproc",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1.2, 1.1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0, 0],
+                    "saturation" : [1.2, 1.05, 0.92, 0.80, 0.75, 0.6],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1.0, 1.0, 1.3, 1.3, 1.5, 1.85],
+                    "brightness" : [-12, -12, -24, -30, -16, 0],
+                    "saturation" : [1.25, 1.0, 0.9, 0.8, 0.7, 0.6],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                }
+            ]
+        },
+        {
+            "classname" : "Aee",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [1024, 1024, 1024, 1024, 1024, 1024],
+                    "ydown" : [1024, 1024, 1024, 1024, 1024, 1024],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [1000, 1000, 1000, 1000, 500, 200]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [8000, 8000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1500, 600, 200]
+                }
+            ]
+        },
+        {
+            "classname" : "ACa",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enableCA" : [1, 1, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1023, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enableCA" : [0, 0, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ], 
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+			            [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ADmsc2",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "demoire_enable" : true,			
+            "demoire_area_thr" : 16,
+            "demoire_sat_shrink" : 8,
+            "demoire_r2" : 256,
+            "demoire_r1" : 0,           
+		    "demoire_t2_shift" : 2,
+            "demoire_t1" : 180,
+            "demoire_edge_r2" : 256,
+            "demoire_edge_r1" : 20,
+            "demoire_edge_t2_shift" : 4,
+            "demoire_edge_t1" :20,	
+            "depurple_enable" : true,
+            "depurple_red_sat" : true,	
+            "depurple_blue_sat" : true,	
+            "depurple_sat_shrink" : 8,				
+            "depurple_thr" : 40,
+            "skin_enable" : true,			
+            "cb_thr_max_2047" : 10,
+            "cb_thr_min_2047" : 8,
+            "cr_thr_max_2047" : 10,
+            "cr_thr_min_2047" : 8,
+            "y_thr_max_2047" : 10,
+            "y_thr_min_2047" : 8,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [1, 1, 1, 1, 1, 1],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [70, 60, 40, 20, 20, 0],
+                    "facwhite" : [70, 60, 60, 40, 20, 0],
+                    "maxblack" : [100, 100, 100, 100, 100, 100],
+                    "maxwhite" : [100, 100, 100, 100, 100, 100],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [5, 5, 5, 5, 5, 5],
+                    "gsharpen" : [8, 8, 8, 8, 8, 8],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],					
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [0, 0, 0, 0, 0, 0],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [200, 200, 100, 50, 20, 20],
+                    "facwhite" : [200, 200, 150, 80, 40, 20],
+                    "maxblack" : [200, 200, 100, 100, 100, 100],
+                    "maxwhite" : [200, 200, 200, 200, 200, 200],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],				
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                }
+            ]
+        },
+        {
+            "classname" : "AWdr4",
+            "forcecreate" : true,
+            "enable" : false,
+	    "disable" : true,
+            "backlight" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                }
+            ],
+            "entropy_slope": 200,
+            "entropy_base": 700,
+            "entropy" : [0, 0, 0, 2, 3, 6, 11, 22, 39, 67, 111, 177, 227, 266, 321, 355, 377, 355, 221, 0],
+            "gamma_down" : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 9, 16, 36, 64, 136, 256, 576, 1023],
+            "gamma_up" : [0, 283121, 330313, 377512, 424723, 471961, 519250, 566650, 614235, 662241, 711077, 761540, 792420, 815280, 849436, 875575, 913530, 948975, 1002792, 1048575],
+            "?gamma_up" : [0, 1024, 34837, 56737, 82912, 116814, 162079, 223337, 306767, 420749, 576707, 735048, 745499, 755950, 776852, 797754, 839557, 881361, 964968, 1048575],
+            "gamma_pre" : [0, 31514, 36815, 42173, 47646, 53350, 59514, 66602, 75530, 88145, 108135, 142869, 175428, 207095, 269144, 330303, 442139, 571475, 810472, 1048575]
+        },
+        {
+
+            "classname" : "A3dnrv3",
+            "forcecreate" : false,
+            "enable" : false,
+	    "disable" : false,
+            "autonoiseLevel": true,
+            "tnr_en" : false,
+            "nlm_en" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [1, 1, 1, 1, 1, 1]
+                }
+            ]
+        },
+        {
+            "classname" : "A2dnrv5",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
+                    "sigma" : [2, 2, 2, 5, 6, 6, 11, 11, 11, 14],
+                    "blendstatic" : [100, 100, 100, 100, 100, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 90, 90, 100, 100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [100, 100, 100, 100, 100, 100, 100, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                }
+            ]
+        },
+        {
+            "classname" : "ADpf",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.1, 0.2, 0.4, 0.7, 1, 1.5, 2, 2.5, 3, 3.5],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [1, 1, 1, 1, 1, 1, 1, 2, 4, 16],
+                    "Div" : [64, 64, 64, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [2, 2, 3, 3, 3, 3, 4, 4, 4, 4],
+                    "sigma_rb" : [2, 2, 3, 3, 3, 3, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [16, 16, 16, 16, 16, 16, 16, 16, 16, 16],
+                    "Div" : [64, 64, 64, 64, 64, 64, 64, 64, 64, 64],
+                    "sigma_g" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "sigma_rb" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ABlc",
+            "forcecreate" : true,
+            "enable" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "blc" : [256, 256]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "blc" : [256, 256]
+                }
+            ]
+        },
+        {
+            "classname" : "AGe",
+            "forcecreate" : true,
+            "enable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                }
+            ]
+        }
+    ]
+}

+ 541 - 0
drivers/OV12870/3aconfig_OV12870_640x480_raw12.json

@@ -0,0 +1,541 @@
+	{
+    "root" : [
+        {
+            "classname" : "Aev1",
+            "enable" : false
+        },
+        {
+            "classname" : "Aev2",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 2.6,
+            "setPoint" : 30,
+            "roi_start" : 12,
+            "roi_end" : 20,
+            "roi_weight" : 1
+        },
+        {
+            "classname" : "Aehdr",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 30
+        },
+        {
+            "classname" : "AdaptiveAe",
+            "enable" : true,
+            "motionThreshold" : 0.7,
+            "roi_start" : 7,
+            "roi_end" : 20,
+            "roi_weight" : 1,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "targetFilter"  : 0.5,
+            "wdrContrast.min" : 150,
+            "wdrContrast.max" : 150,
+            "lowlight" : {
+                "linear_repress" : [0.8, 0.7, 0.5, 0.5, 0.4],
+                "linear_gain" : [4, 8, 16, 32, 100],
+                "hdr_repress" : [1, 0.8, 0.8, 0.8, 0.8],
+                "hdr_gain" : [4, 8, 16, 32, 100]
+            },
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 1,
+            "setPoint" : 60
+        },
+        {
+            "classname" : "Awbv2",
+            "enable" : true,
+            "illuorder" : "A, D50, D65, D75, TL84, F12, CWF",
+            "indoor" : [1, 1, 1, 1, 1, 1, 1],
+            "outdoor" : [1, 1, 1, 1, 1, 1, 1],
+            "transition" : [1, 1, 1, 1, 1, 1, 1],
+            "lsc_ratio":{
+                "gains" : [1, 2, 4, 8, 16, 32],
+                "vignetting" : [1, 1, 1, 0.9, 0.8, 0.7]
+            },
+            "avg" : 0.0
+        },
+        {
+            "classname" : "IspController",
+            "enable" : true
+        },
+        {
+            "classname" : "AutoHdr",
+            "enable" : false
+        },
+        {
+            "classname" : "DciHist",
+            "enable" : false,
+            "gaussMeanPos" : 64,
+            "gaussSigmaPos" : 128,
+            "gaussAmpPos" : 1.0,
+            "gaussMeanNeg" : 0,
+            "gaussSigmaNeg" : 128,
+            "gaussAmpNeg" : 1.0
+        },
+        {
+            "classname" : "SensorController",
+            "enable" : true
+        },
+        {
+            "classname" : "AGamma64",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [18, 35, 53, 70, 86, 103, 120, 136, 153, 169, 186, 202, 219, 235, 251, 267, 283, 300, 316, 332, 348, 364, 380, 396, 412, 428, 444, 460, 476, 491, 507, 523, 539, 555, 571, 586, 602, 618, 634, 649, 665, 681, 696, 712, 728, 743, 759, 775, 790, 806, 821, 837, 853, 868, 884, 899, 914, 930, 945, 961, 977, 992, 1008, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ACproc",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1.2, 1.1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0, 0],
+                    "saturation" : [1.2, 1.05, 0.92, 0.80, 0.75, 0.6],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1.0, 1.0, 1.3, 1.3, 1.5, 1.85],
+                    "brightness" : [-12, -12, -24, -30, -16, 0],
+                    "saturation" : [1.25, 1.0, 0.9, 0.8, 0.7, 0.6],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                }
+            ]
+        },
+        {
+            "classname" : "Aee",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [1024, 1024, 1024, 1024, 1024, 1024],
+                    "ydown" : [1024, 1024, 1024, 1024, 1024, 1024],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [1000, 1000, 1000, 1000, 500, 200]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [8000, 8000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1500, 600, 200]
+                }
+            ]
+        },
+        {
+            "classname" : "ACa",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enableCA" : [1, 1, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1023, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enableCA" : [0, 0, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ], 
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+			            [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ADmsc2",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "demoire_enable" : true,			
+            "demoire_area_thr" : 16,
+            "demoire_sat_shrink" : 8,
+            "demoire_r2" : 256,
+            "demoire_r1" : 0,           
+		    "demoire_t2_shift" : 2,
+            "demoire_t1" : 180,
+            "demoire_edge_r2" : 256,
+            "demoire_edge_r1" : 20,
+            "demoire_edge_t2_shift" : 4,
+            "demoire_edge_t1" :20,	
+            "depurple_enable" : true,
+            "depurple_red_sat" : true,	
+            "depurple_blue_sat" : true,	
+            "depurple_sat_shrink" : 8,				
+            "depurple_thr" : 40,
+            "skin_enable" : true,			
+            "cb_thr_max_2047" : 10,
+            "cb_thr_min_2047" : 8,
+            "cr_thr_max_2047" : 10,
+            "cr_thr_min_2047" : 8,
+            "y_thr_max_2047" : 10,
+            "y_thr_min_2047" : 8,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [1, 1, 1, 1, 1, 1],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [70, 60, 40, 20, 20, 0],
+                    "facwhite" : [70, 60, 60, 40, 20, 0],
+                    "maxblack" : [100, 100, 100, 100, 100, 100],
+                    "maxwhite" : [100, 100, 100, 100, 100, 100],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [5, 5, 5, 5, 5, 5],
+                    "gsharpen" : [8, 8, 8, 8, 8, 8],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],					
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [0, 0, 0, 0, 0, 0],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [200, 200, 100, 50, 20, 20],
+                    "facwhite" : [200, 200, 150, 80, 40, 20],
+                    "maxblack" : [200, 200, 100, 100, 100, 100],
+                    "maxwhite" : [200, 200, 200, 200, 200, 200],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],				
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                }
+            ]
+        },
+        {
+            "classname" : "AWdr4",
+            "forcecreate" : true,
+            "enable" : false,
+	    "disable" : true,
+            "backlight" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                }
+            ],
+            "entropy_slope": 200,
+            "entropy_base": 700,
+            "entropy" : [0, 0, 0, 2, 3, 6, 11, 22, 39, 67, 111, 177, 227, 266, 321, 355, 377, 355, 221, 0],
+            "gamma_down" : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 9, 16, 36, 64, 136, 256, 576, 1023],
+            "gamma_up" : [0, 283121, 330313, 377512, 424723, 471961, 519250, 566650, 614235, 662241, 711077, 761540, 792420, 815280, 849436, 875575, 913530, 948975, 1002792, 1048575],
+            "?gamma_up" : [0, 1024, 34837, 56737, 82912, 116814, 162079, 223337, 306767, 420749, 576707, 735048, 745499, 755950, 776852, 797754, 839557, 881361, 964968, 1048575],
+            "gamma_pre" : [0, 31514, 36815, 42173, 47646, 53350, 59514, 66602, 75530, 88145, 108135, 142869, 175428, 207095, 269144, 330303, 442139, 571475, 810472, 1048575]
+        },
+        {
+
+            "classname" : "A3dnrv3",
+            "forcecreate" : false,
+            "enable" : false,
+	    "disable" : false,
+            "autonoiseLevel": true,
+            "tnr_en" : false,
+            "nlm_en" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [1, 1, 1, 1, 1, 1]
+                }
+            ]
+        },
+        {
+            "classname" : "A2dnrv5",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
+                    "sigma" : [2, 2, 2, 5, 6, 6, 11, 11, 11, 14],
+                    "blendstatic" : [100, 100, 100, 100, 100, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 90, 90, 100, 100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [100, 100, 100, 100, 100, 100, 100, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                }
+            ]
+        },
+        {
+            "classname" : "ADpf",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.1, 0.2, 0.4, 0.7, 1, 1.5, 2, 2.5, 3, 3.5],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [1, 1, 1, 1, 1, 1, 1, 2, 4, 16],
+                    "Div" : [64, 64, 64, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [2, 2, 3, 3, 3, 3, 4, 4, 4, 4],
+                    "sigma_rb" : [2, 2, 3, 3, 3, 3, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [16, 16, 16, 16, 16, 16, 16, 16, 16, 16],
+                    "Div" : [64, 64, 64, 64, 64, 64, 64, 64, 64, 64],
+                    "sigma_g" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "sigma_rb" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ABlc",
+            "forcecreate" : true,
+            "enable" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "blc" : [256, 256]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "blc" : [256, 256]
+                }
+            ]
+        },
+        {
+            "classname" : "AGe",
+            "forcecreate" : true,
+            "enable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                }
+            ]
+        }
+    ]
+}

+ 36 - 0
drivers/OV12870/CMakeLists.txt

@@ -0,0 +1,36 @@
+cmake_minimum_required(VERSION 3.1.0)
+
+# define module name & interface version
+set (module ov12870)
+string(TOUPPER ${module} SENSOR_NAME)
+
+# we want to compile all .c files as default
+file(GLOB libsources ${SENSOR_NAME}.c )
+
+# set public headers, these get installed
+#file(GLOB pub_headers include/*.h)
+
+#include_directories()
+
+add_library(${module} SHARED ${libsources})
+
+add_custom_target(${module}.drv
+                  ALL
+                  COMMAND ${CMAKE_COMMAND} -E copy lib${module}.so ${LIB_ROOT}/rootfs/usr/share/vi/tuningtool/bin/${module}.drv
+                  COMMAND ${CMAKE_COMMAND} -E copy lib${module}.so ${LIB_ROOT}/rootfs/usr/lib/lib${module}.so
+                  COMMAND ${CMAKE_COMMAND} -E make_directory ${LIB_ROOT}/rootfs/usr/share/vi/isp/test/
+                  COMMAND ${CMAKE_COMMAND} -E copy ${LIB_ROOT}/../drivers/${SENSOR_NAME}/*.xml ${LIB_ROOT}/rootfs/usr/share/vi/isp/test/
+                  COMMAND ${CMAKE_COMMAND} -E copy ${LIB_ROOT}/../drivers/${SENSOR_NAME}/${SENSOR_NAME}*.txt ${LIB_ROOT}/rootfs/usr/share/vi/isp/test/
+                  COMMAND ${CMAKE_COMMAND} -E copy ${LIB_ROOT}/../drivers/${SENSOR_NAME}/*.json ${LIB_ROOT}/rootfs/usr/share/vi/isp/test/
+                  COMMAND ${CMAKE_COMMAND} -E copy ${LIB_ROOT}/../drivers/${SENSOR_NAME}/*.xml ${LIB_ROOT}/rootfs/usr/share/vi/tuningtool/bin/
+                  COMMAND ${CMAKE_COMMAND} -E copy ${LIB_ROOT}/../drivers/${SENSOR_NAME}/${SENSOR_NAME}*.txt ${LIB_ROOT}/rootfs/usr/share/vi/tuningtool/bin/
+                  COMMAND ${CMAKE_COMMAND} -E copy ${LIB_ROOT}/../drivers/${SENSOR_NAME}/*.json ${LIB_ROOT}/rootfs/usr/share/vi/tuningtool/bin/
+                  DEPENDS ${module}
+                  COMMENT "Copying ${module} driver module"
+                  )
+target_link_libraries(${module} ${DEPEND_LIBS} )
+add_dependencies(${module} ${DEPEND_LIBS})
+#install(FILES       ${LIB_ROOT}/${CMAKE_BUILD_TYPE}/lib/lib${module}.so.${${module}_INTERFACE_CURRENT}
+#                  DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
+#                  RENAME      ${module}.drv
+#                  )

+ 1890 - 0
drivers/OV12870/OV12870.c

@@ -0,0 +1,1890 @@
+#include <ebase/types.h>
+#include <ebase/trace.h>
+#include <ebase/builtins.h>
+#include <common/return_codes.h>
+#include <common/misc.h>
+#include <sys/ioctl.h>
+#include <fcntl.h>
+#include <math.h>
+#include <sys/types.h>
+#include <isi/isi.h>
+#include <isi/isi_iss.h>
+#include <isi/isi_priv.h>
+#include "vvsensor.h"
+#include "OV12870_priv.h"
+#include "ov12870.h"
+
+CREATE_TRACER( OV12870_INFO , "OV12870: ", INFO,    0);
+CREATE_TRACER( OV12870_WARN , "OV12870: ", WARNING, 1);
+CREATE_TRACER( OV12870_ERROR, "OV12870: ", ERROR,   1);
+CREATE_TRACER( OV12870_DEBUG,     "OV12870: ", INFO, 1);
+CREATE_TRACER( OV12870_REG_INFO , "OV12870: ", INFO, 1);
+CREATE_TRACER( OV12870_REG_DEBUG, "OV12870: ", INFO, 1);
+
+#ifdef SUBDEV_V4L2
+#include <sys/ioctl.h>
+#include <sys/mman.h>
+#include <fcntl.h>
+#include <linux/videodev2.h>
+#include <linux/v4l2-subdev.h>
+#undef TRACE
+#define TRACE(x, ...)
+#endif
+
+#define OV12870_MIN_GAIN_STEP    ( 1.0f/16.0f )  /**< min gain step size used by GUI (hardware min = 1/16; 1/16..32/16 depending on actual gain ) */
+#define OV12870_MAX_GAIN_AEC     ( 32.0f )       /**< max. gain used by the AEC (arbitrarily chosen, hardware limit = 62.0, driver limit = 32.0 ) */
+#define OV12870_VS_MAX_INTEGRATION_TIME (0.0018)
+
+/*****************************************************************************
+ *Sensor Info
+*****************************************************************************/
+static const char SensorName[16] = "OV12870";
+
+static struct vvcam_mode_info pov12870_mode_info[] = {
+    {
+        .index     = 0,
+        .width     = 640,
+        .height    = 480,
+        .fps       = 30,
+        .hdr_mode  = SENSOR_MODE_LINEAR,
+        .bit_width = 12,
+        .bayer_pattern = BAYER_BGGR,
+        .mipi_phy_freq = 400, //mbps
+        .mipi_line_num = 4,
+		.config_file_3a = "OV12870_640x480_raw12",  //3aconfig_OV12870_640x480_raw12.json
+        .preg_data = (void *)"ov12870 sensor liner mode, raw12, 400mbps(sensor clk 24m), img resolution is 640*480",
+        //pclk 90mhz
+    },
+    {
+        .index    = 1,
+        .width = 1920,
+        .height = 1080,
+        .fps      = 30,
+        .hdr_mode = SENSOR_MODE_LINEAR,
+        .bit_width = 12,
+        .bayer_pattern = BAYER_BGGR,
+        //.mipi_phy_freq = 1200, //mbps
+        .mipi_phy_freq = 400, //mbps
+        .mipi_line_num = 4,
+		.config_file_3a = "OV12870_1920x1080_raw12",  //3aconfig_OV12870_1920x1080_raw12.json
+        .preg_data = (void *)"ov12870 sensor liner mode, raw12, 1200mbps(sensor clk 24m), img resolution is 1280*1080",
+        //pclk 180mhz
+    },
+    {
+        .index     = 2,
+        .width = 4096,
+        .height = 3072,
+        .fps      = 30,
+        .hdr_mode = SENSOR_MODE_LINEAR,
+        .bit_width = 10,
+        .bayer_pattern = BAYER_BGGR,
+        .mipi_phy_freq = 1200, //mbps
+        .mipi_line_num = 4,
+		.config_file_3a = "OV12870_4096x3072_raw12",  //3aconfig_OV12870_4096x3072_raw12.json
+        .preg_data = (void *)"ov12870 sensor liner mode, raw12, 1200mbps(sensor clk 24m), img resolution is 4096*3072",
+        //pclk 180mhz
+    },
+};
+
+static RESULT OV12870_IsiRegisterWriteIss(IsiSensorHandle_t handle, const uint32_t address, const uint32_t value);
+
+long __ov12870_set_exposure(IsiSensorHandle_t handle, int coarse_itg,
+				 int gain, int digitgain, OV12870_EXPOSURE_SETTING_t type)
+
+{
+
+	return 0;
+}
+
+static RESULT OV12870_IsiSensorSetPowerIss(IsiSensorHandle_t handle, bool_t on) {
+    RESULT result = RET_SUCCESS;
+
+    int ret = 0;
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    if (pOV12870Ctx == NULL || pOV12870Ctx->IsiCtx.HalHandle == NULL) {
+        return RET_NULL_POINTER;
+    }
+    HalContext_t *pHalCtx = (HalContext_t *) pOV12870Ctx->IsiCtx.HalHandle;
+
+    TRACE(OV12870_INFO, "%s (enter)\n", __func__);
+
+    int32_t enable = on;
+    ret = ioctl(pHalCtx->sensor_fd, VVSENSORIOC_S_POWER, &enable);
+    if (ret != 0) {
+        // to do
+        //TRACE(OV12870_ERROR, "%s: sensor set power error!\n", __func__);
+        //return (RET_FAILURE);
+    }
+
+    TRACE(OV12870_INFO, "%s (exit)\n", __func__);
+    return (result);
+}
+
+static RESULT OV12870_IsiResetSensorIss(IsiSensorHandle_t handle) {
+    RESULT result = RET_SUCCESS;
+    int ret = 0;
+
+    TRACE(OV12870_INFO, "%s (enter)\n", __func__);
+
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    if (pOV12870Ctx == NULL || pOV12870Ctx->IsiCtx.HalHandle == NULL) {
+        return RET_NULL_POINTER;
+    }
+    HalContext_t *pHalCtx = (HalContext_t *) pOV12870Ctx->IsiCtx.HalHandle;
+
+    ret = ioctl(pHalCtx->sensor_fd, VVSENSORIOC_RESET, NULL);
+    if (ret != 0) {
+        TRACE(OV12870_ERROR, "%s: sensor reset error!\n", __func__);
+        return (RET_FAILURE);
+    }
+    sleep(0.2);
+
+    ret = OV12870_IsiRegisterWriteIss(handle, 0x301e, 0x0);
+    if (ret != 0) {
+        TRACE(OV12870_ERROR, "%s: sensor reset error!\n", __func__);
+        return (RET_FAILURE);
+    }
+
+    ret = OV12870_IsiRegisterWriteIss(handle, 0x103, 1);
+    if (ret != 0) {
+        TRACE(OV12870_ERROR, "%s: sensor reset error!\n", __func__);
+        return (RET_FAILURE);
+    }
+
+    sleep(0.2);
+
+    TRACE(OV12870_INFO, "%s (exit)\n", __func__);
+    return (result);
+}
+
+#ifdef SUBDEV_CHAR
+static RESULT OV12870_IsiSensorSetClkIss(IsiSensorHandle_t handle, uint32_t clk) {
+    RESULT result = RET_SUCCESS;
+    int32_t ret = 0;
+
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    if (pOV12870Ctx == NULL || pOV12870Ctx->IsiCtx.HalHandle == NULL) {
+        return RET_NULL_POINTER;
+    }
+    HalContext_t *pHalCtx = (HalContext_t *) pOV12870Ctx->IsiCtx.HalHandle;
+
+    TRACE(OV12870_INFO, "%s (enter)\n", __func__);
+
+    ret = ioctl(pHalCtx->sensor_fd, VVSENSORIOC_S_CLK, &clk);
+    if (ret != 0) {
+        // to do
+        //TRACE(OV12870_ERROR, "%s: sensor set clk error!\n", __func__);
+        //return (RET_FAILURE);
+    }
+
+    TRACE(OV12870_INFO, "%s (exit)\n", __func__);
+    return (result);
+}
+
+static RESULT OV12870_IsiSensorGetClkIss
+    (IsiSensorHandle_t handle, uint32_t * pclk) {
+    RESULT result = RET_SUCCESS;
+    int ret = 0;
+
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    if (pOV12870Ctx == NULL || pOV12870Ctx->IsiCtx.HalHandle == NULL) {
+        return RET_NULL_POINTER;
+    }
+
+    HalContext_t *pHalCtx = (HalContext_t *) pOV12870Ctx->IsiCtx.HalHandle;
+
+    TRACE(OV12870_INFO, "%s (enter)\n", __func__);
+
+    ret = ioctl(pHalCtx->sensor_fd, VVSENSORIOC_G_CLK, pclk);
+    if (ret != 0) {
+        // to do
+        //TRACE(OV12870_ERROR, "%s: sensor get clk error!\n", __func__);
+        //return (RET_FAILURE);
+    }
+
+    TRACE(OV12870_INFO, "%s (exit)\n", __func__);
+    return (result);
+}
+
+static RESULT OV12870_IsiConfigSensorSCCBIss(IsiSensorHandle_t handle)
+{
+    int ret = 0;
+    TRACE(OV12870_INFO, "%s (enter)\n", __func__);
+    return RET_SUCCESS;
+
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    if (pOV12870Ctx == NULL || pOV12870Ctx->IsiCtx.HalHandle == NULL) {
+        return RET_NULL_POINTER;
+    }
+
+    HalContext_t *pHalCtx = (HalContext_t *) pOV12870Ctx->IsiCtx.HalHandle;
+
+    static const IsiSccbInfo_t SensorSccbInfo = {
+        .slave_addr = (0x10),  //0x30 or 0x32
+        .addr_byte = 2,
+        .data_byte = 1,
+    };
+
+    struct vvcam_sccb_cfg_s sensor_sccb_config;
+    sensor_sccb_config.slave_addr = SensorSccbInfo.slave_addr;
+    sensor_sccb_config.addr_byte = SensorSccbInfo.addr_byte;
+    sensor_sccb_config.data_byte = SensorSccbInfo.data_byte;
+
+    ret = ioctl(pHalCtx->sensor_fd, VVSENSORIOC_SENSOR_SCCB_CFG,
+          &sensor_sccb_config);
+    if (ret != 0) {
+        TRACE(OV12870_ERROR, "%s: sensor config sccb info error!\n",
+              __func__);
+        return (RET_FAILURE);
+    }
+
+    TRACE(OV12870_INFO, "%s (exit)\n", __func__);
+
+    return RET_SUCCESS;
+}
+#endif
+
+static RESULT OV12870_IsiRegisterReadIss
+    (IsiSensorHandle_t handle, const uint32_t address, uint32_t * p_value) {
+    RESULT result = RET_SUCCESS;
+    int32_t ret = 0;
+    TRACE(OV12870_INFO, "%s (enter)\n", __func__);
+
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    if (pOV12870Ctx == NULL || pOV12870Ctx->IsiCtx.HalHandle == NULL) {
+        return RET_NULL_POINTER;
+    }
+
+    HalContext_t *pHalCtx = (HalContext_t *) pOV12870Ctx->IsiCtx.HalHandle;
+
+    struct vvcam_sccb_data sccb_data;
+    sccb_data.addr = address;
+    sccb_data.data = 0;
+    ret = ioctl(pHalCtx->sensor_fd, VVSENSORIOC_READ_REG, &sccb_data);
+    if (ret != 0) {
+        TRACE(OV12870_ERROR, "%s: read sensor register error!\n",
+              __func__);
+        return (RET_FAILURE);
+    }
+
+    *p_value = sccb_data.data;
+
+    TRACE(OV12870_INFO, "%s (exit) result = %d\n", __func__, result);
+    return (result);
+}
+
+static RESULT OV12870_IsiRegisterWriteIss
+    (IsiSensorHandle_t handle, const uint32_t address, const uint32_t value) {
+    RESULT result = RET_SUCCESS;
+    int ret = 0;
+    TRACE(OV12870_INFO, "%s (enter)\n", __func__);
+
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    if (pOV12870Ctx == NULL || pOV12870Ctx->IsiCtx.HalHandle == NULL) {
+        return RET_NULL_POINTER;
+    }
+
+    HalContext_t *pHalCtx = (HalContext_t *) pOV12870Ctx->IsiCtx.HalHandle;
+
+    struct vvcam_sccb_data sccb_data;
+    sccb_data.addr = address;
+    sccb_data.data = value;
+
+    ret = ioctl(pHalCtx->sensor_fd, VVSENSORIOC_WRITE_REG, &sccb_data);
+    if (ret != 0) {
+        TRACE(OV12870_ERROR, "%s: write sensor register error!\n",
+              __func__);
+        return (RET_FAILURE);
+    }
+
+    TRACE(OV12870_INFO, "%s (exit) result = %d\n", __func__, result);
+    return (result);
+}
+
+static RESULT OV12870_IsiQuerySensorSupportIss(HalHandle_t  HalHandle, vvcam_mode_info_array_t *pSensorSupportInfo)
+{
+    //int ret = 0;
+    struct vvcam_mode_info_array *psensor_mode_info_arry;
+
+    HalContext_t *pHalCtx = HalHandle;
+    if ( pHalCtx == NULL ) {
+        return RET_NULL_POINTER;
+    }
+
+    psensor_mode_info_arry = pSensorSupportInfo;
+    psensor_mode_info_arry->count = sizeof(pov12870_mode_info) / sizeof(struct vvcam_mode_info);
+    memcpy(psensor_mode_info_arry->modes, pov12870_mode_info, sizeof(pov12870_mode_info));
+    return RET_SUCCESS;
+}
+
+static  RESULT OV12870_IsiQuerySensorIss(IsiSensorHandle_t handle, vvcam_mode_info_array_t *pSensorInfo)
+{
+    RESULT result = RET_SUCCESS;
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    if (pOV12870Ctx == NULL || pOV12870Ctx->IsiCtx.HalHandle == NULL) {
+        return RET_NULL_POINTER;
+    }
+
+    HalContext_t *pHalCtx = (HalContext_t *) pOV12870Ctx->IsiCtx.HalHandle;
+    OV12870_IsiQuerySensorSupportIss(pHalCtx,pSensorInfo);
+
+    return result;
+}
+
+static RESULT OV12870_IsiGetSensorModeIss(IsiSensorHandle_t handle,void *mode)
+{
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    if (pOV12870Ctx == NULL) {
+        return (RET_WRONG_HANDLE);
+    }
+    memcpy(mode,&(pOV12870Ctx->SensorMode), sizeof(pOV12870Ctx->SensorMode));
+
+    return ( RET_SUCCESS );
+}
+
+static RESULT OV12870_IsiCreateSensorIss(IsiSensorInstanceConfig_t * pConfig) {
+    RESULT result = RET_SUCCESS;
+    OV12870_Context_t *pOV12870Ctx;
+
+    TRACE(OV12870_INFO, "%s (enter)\n", __func__);
+
+    if (!pConfig || !pConfig->pSensor)
+        return (RET_NULL_POINTER);
+
+    pOV12870Ctx = (OV12870_Context_t *) malloc(sizeof(OV12870_Context_t));
+    if (!pOV12870Ctx) {
+        TRACE(OV12870_ERROR, "%s: Can't allocate ov12870 context\n",
+              __func__);
+        return (RET_OUTOFMEM);
+    }
+
+    MEMSET(pOV12870Ctx, 0, sizeof(OV12870_Context_t));
+
+    result = HalAddRef(pConfig->HalHandle);
+    if (result != RET_SUCCESS) {
+        free(pOV12870Ctx);
+        return (result);
+    }
+
+    pOV12870Ctx->IsiCtx.HalHandle = pConfig->HalHandle;
+    pOV12870Ctx->IsiCtx.pSensor = pConfig->pSensor;
+    pOV12870Ctx->GroupHold = BOOL_FALSE;
+    pOV12870Ctx->OldGain = 0;
+    pOV12870Ctx->OldIntegrationTime = 0;
+    pOV12870Ctx->Configured = BOOL_FALSE;
+    pOV12870Ctx->Streaming = BOOL_FALSE;
+    pOV12870Ctx->TestPattern = BOOL_FALSE;
+    pOV12870Ctx->isAfpsRun = BOOL_FALSE;
+    pOV12870Ctx->SensorMode.index = pConfig->SensorModeIndex;
+    pConfig->hSensor = (IsiSensorHandle_t) pOV12870Ctx;
+#ifdef SUBDEV_CHAR
+    struct vvcam_mode_info *SensorDefaultMode = NULL;
+    for (int i=0; i < sizeof(pov12870_mode_info)/ sizeof(struct vvcam_mode_info); i++)
+    {
+        if (pov12870_mode_info[i].index == pOV12870Ctx->SensorMode.index)
+        {
+            SensorDefaultMode = &(pov12870_mode_info[i]);
+            break;
+        }
+    }
+
+    if (SensorDefaultMode != NULL)
+    {
+        strcpy(pOV12870Ctx->SensorRegCfgFile, get_vi_config_path());
+        switch(SensorDefaultMode->index)
+        {
+            case 0:
+                strcat(pOV12870Ctx->SensorRegCfgFile,
+                    "OV12870_mipi4lane_640x480_init.txt");
+                break;
+            case 1:
+                strcat(pOV12870Ctx->SensorRegCfgFile,
+                    "OV12870_mipi4lane_1920x1080_1200_30f.txt");
+                break;
+            case 2:
+                strcat(pOV12870Ctx->SensorRegCfgFile,
+                    "OV12870_mipi4lane_4096X3072_1200_30f_init.txt");
+                break;
+            default:
+                return -1;
+        }
+
+        if (access(pOV12870Ctx->SensorRegCfgFile, F_OK) == 0) {
+            pOV12870Ctx->KernelDriverFlag = 0;
+            memcpy(&(pOV12870Ctx->SensorMode),SensorDefaultMode,sizeof(struct vvcam_mode_info));
+        } else {
+            pOV12870Ctx->KernelDriverFlag = 1;
+        }
+    }else
+    {
+        pOV12870Ctx->KernelDriverFlag = 1;
+    }
+
+    result = OV12870_IsiSensorSetPowerIss(pOV12870Ctx, BOOL_TRUE);
+    system("echo 456 > /sys/class/gpio/export");
+    system("echo out > /sys/class/gpio/gpio456/direction");
+    system("echo 0 > /sys/class/gpio/gpio456/value");
+    sleep(0.2);
+    system("echo 1 > /sys/class/gpio/gpio456/value");
+    sleep(0.2);
+    system("echo 456 > /sys/class/gpio/unexport");
+
+    RETURN_RESULT_IF_DIFFERENT(RET_SUCCESS, result);
+
+    uint32_t SensorClkIn = 0;
+    if (pOV12870Ctx->KernelDriverFlag) {
+        result = OV12870_IsiSensorGetClkIss(pOV12870Ctx, &SensorClkIn);
+        RETURN_RESULT_IF_DIFFERENT(RET_SUCCESS, result);
+    }
+
+    result = OV12870_IsiSensorSetClkIss(pOV12870Ctx, SensorClkIn);
+    RETURN_RESULT_IF_DIFFERENT(RET_SUCCESS, result);
+
+    result = OV12870_IsiResetSensorIss(pOV12870Ctx);
+    RETURN_RESULT_IF_DIFFERENT(RET_SUCCESS, result);
+
+    pOV12870Ctx->pattern = ISI_BPAT_BGBGGRGR;
+
+    if (!pOV12870Ctx->KernelDriverFlag) {
+        result = OV12870_IsiConfigSensorSCCBIss(pOV12870Ctx);
+        RETURN_RESULT_IF_DIFFERENT(RET_SUCCESS, result);
+    }
+#endif
+
+    TRACE(OV12870_INFO, "%s (exit)\n", __func__);
+    return (result);
+}
+
+static RESULT OV12870_IsiGetRegCfgIss(const char *registerFileName,
+                     struct vvcam_sccb_array *arry)
+{
+    if (NULL == registerFileName) {
+        TRACE(OV12870_ERROR, "%s:registerFileName is NULL\n", __func__);
+        return (RET_NULL_POINTER);
+    }
+#ifdef SUBDEV_CHAR
+    FILE *fp = NULL;
+    fp = fopen(registerFileName, "rb");
+    if (!fp) {
+        TRACE(OV12870_ERROR, "%s:load register file  %s error!\n",
+              __func__, registerFileName);
+        return (RET_FAILURE);
+    }
+
+    char LineBuf[512];
+    uint32_t FileTotalLine = 0;
+    while (!feof(fp)) {
+        fgets(LineBuf, 512, fp);
+        FileTotalLine++;
+    }
+
+    arry->sccb_data =
+        malloc(FileTotalLine * sizeof(struct vvcam_sccb_data));
+    if (arry->sccb_data == NULL) {
+        TRACE(OV12870_ERROR, "%s:malloc failed NULL Point!\n", __func__,
+              registerFileName);
+        return (RET_FAILURE);
+    }
+    rewind(fp);
+
+    arry->count = 0;
+    while (!feof(fp)) {
+        memset(LineBuf, 0, sizeof(LineBuf));
+        fgets(LineBuf, 512, fp);
+
+        int result =
+            sscanf(LineBuf, "0x%x 0x%x",
+               &(arry->sccb_data[arry->count].addr),
+               &(arry->sccb_data[arry->count].data));
+        if (result != 2)
+            continue;
+        arry->count++;
+
+    }
+#endif
+
+    return 0;
+}
+
+static RESULT OV12870_IsiInitSensorIss(IsiSensorHandle_t handle) {
+    RESULT result = RET_SUCCESS;
+
+    int ret = 0;
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+
+    HalContext_t *pHalCtx = (HalContext_t *) pOV12870Ctx->IsiCtx.HalHandle;
+    TRACE(OV12870_INFO, "%s (enter)\n", __func__);
+
+    if (pOV12870Ctx == NULL) {
+        return (RET_WRONG_HANDLE);
+    }
+
+    if (pOV12870Ctx->KernelDriverFlag) {
+        ;
+    } else {
+        struct vvcam_sccb_array arry;
+        result = OV12870_IsiGetRegCfgIss(pOV12870Ctx->SensorRegCfgFile, &arry);
+        if (result != 0) {
+            TRACE(OV12870_ERROR,
+                  "%s:OV12870_IsiGetRegCfgIss error!\n", __func__);
+            return (RET_FAILURE);
+        }
+
+        ret = ioctl(pHalCtx->sensor_fd, VVSENSORIOC_WRITE_ARRAY, &arry);
+        if (ret != 0) {
+            TRACE(OV12870_ERROR, "%s:Sensor Write Reg arry error!\n",
+                  __func__);
+            return (RET_FAILURE);
+        }
+
+        switch(pOV12870Ctx->SensorMode.index)
+        {
+            case 0:
+                pOV12870Ctx->one_line_exp_time = 0.000001;
+                pOV12870Ctx->FrameLengthLines = 480-36;
+                pOV12870Ctx->CurFrameLengthLines = pOV12870Ctx->FrameLengthLines;
+                pOV12870Ctx->MaxIntegrationLine = pOV12870Ctx->CurFrameLengthLines;
+                pOV12870Ctx->MinIntegrationLine = 8;
+                pOV12870Ctx->AecMaxGain = 0xffff;
+                pOV12870Ctx->AecMinGain = 1;
+                break;
+            case 1:
+                pOV12870Ctx->one_line_exp_time = 0.000001;
+                pOV12870Ctx->FrameLengthLines = 2142;
+                pOV12870Ctx->CurFrameLengthLines = pOV12870Ctx->FrameLengthLines;
+                pOV12870Ctx->MaxIntegrationLine = pOV12870Ctx->CurFrameLengthLines;
+                pOV12870Ctx->MinIntegrationLine = 8;
+                pOV12870Ctx->AecMaxGain = 0xffff;
+                pOV12870Ctx->AecMinGain = 1;
+                break;
+            case 2:
+                break;
+            default:
+                return ( RET_NOTAVAILABLE );
+                break;
+        }
+		pOV12870Ctx->AecIntegrationTimeIncrement = pOV12870Ctx->one_line_exp_time;
+		pOV12870Ctx->AecMinIntegrationTime =
+			pOV12870Ctx->one_line_exp_time * pOV12870Ctx->MinIntegrationLine;
+		pOV12870Ctx->AecMaxIntegrationTime =
+			pOV12870Ctx->one_line_exp_time * pOV12870Ctx->MaxIntegrationLine;
+
+
+        pOV12870Ctx->MaxFps  = pOV12870Ctx->SensorMode.fps;
+        pOV12870Ctx->MinFps  = 1;
+        pOV12870Ctx->CurrFps = pOV12870Ctx->MaxFps;
+    }
+
+    TRACE(OV12870_INFO, "%s (exit)\n", __func__);
+    return (result);
+}
+
+static RESULT OV12870_IsiReleaseSensorIss(IsiSensorHandle_t handle) {
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    RESULT result = RET_SUCCESS;
+    TRACE(OV12870_INFO, "%s (enter)\n", __func__);
+
+    if (pOV12870Ctx == NULL)
+        return (RET_WRONG_HANDLE);
+
+    (void)OV12870_IsiSensorSetStreamingIss(pOV12870Ctx, BOOL_FALSE);
+    (void)OV12870_IsiSensorSetPowerIss(pOV12870Ctx, BOOL_FALSE);
+    (void)HalDelRef(pOV12870Ctx->IsiCtx.HalHandle);
+
+    MEMSET(pOV12870Ctx, 0, sizeof(OV12870_Context_t));
+    free(pOV12870Ctx);
+    TRACE(OV12870_INFO, "%s (exit)\n", __func__);
+    return (result);
+}
+
+struct ov12870_fmt {
+    int width;
+    int height;
+    int fps;
+};
+
+static RESULT OV12870_IsiSetupSensorIss
+    (IsiSensorHandle_t handle, const IsiSensorConfig_t * pConfig) {
+
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    HalContext_t *pHalCtx = (HalContext_t *) pOV12870Ctx->IsiCtx.HalHandle;
+
+    RESULT result = RET_SUCCESS;
+
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+
+    if (!pOV12870Ctx) {
+        TRACE(OV12870_ERROR,
+              "%s: Invalid sensor handle (NULL pointer detected)\n",
+              __func__);
+        return (RET_WRONG_HANDLE);
+    }
+
+    if (!pConfig) {
+        TRACE(OV12870_ERROR,
+              "%s: Invalid configuration (NULL pointer detected)\n",
+              __func__);
+        return (RET_NULL_POINTER);
+    }
+
+    if (pOV12870Ctx->Streaming != BOOL_FALSE) {
+        return RET_WRONG_STATE;
+    }
+
+    memcpy(&pOV12870Ctx->Config, pConfig, sizeof(IsiSensorConfig_t));
+
+    /* 1.) SW reset of image sensor (via I2C register interface)  be careful, bits 6..0 are reserved, reset bit is not sticky */
+    TRACE(OV12870_DEBUG, "%s: OV12870 System-Reset executed\n", __func__);
+    osSleep(100);
+
+    //OV12870_AecSetModeParameters not defined yet as of 2021/8/9.
+    //result = OV12870_AecSetModeParameters(pOV12870Ctx, pConfig);
+    //if (result != RET_SUCCESS) {
+    //    TRACE(OV12870_ERROR, "%s: SetupOutputWindow failed.\n",
+    //          __func__);
+    //    return (result);
+    //}
+#if 1
+    struct ov12870_fmt fmt;
+    fmt.width = pConfig->Resolution.width;
+    fmt.height = pConfig->Resolution.height;
+
+    ioctl(pHalCtx->sensor_fd, VVSENSORIOC_S_FPS, &fmt);//result = ioctl(pHalCtx->sensor_fd, VVSENSORIOC_S_FPS, &fmt);
+#endif
+    pOV12870Ctx->Configured = BOOL_TRUE;
+    TRACE(OV12870_INFO, "%s: (exit) ret=0x%x \n", __func__, result);
+    return result;
+}
+
+static RESULT OV12870_IsiChangeSensorResolutionIss(IsiSensorHandle_t handle, uint16_t width, uint16_t height) {
+    RESULT result = RET_SUCCESS;
+#if 0
+    struct ov12870_fmt fmt;
+    fmt.width = width;
+    fmt.height = height;
+
+    int ret = ioctl(pHalCtx->sensor_fd, VVSENSORIOC_S_FPS, &fmt);
+#endif
+    TRACE(OV12870_INFO, "%s (exit)\n", __func__);
+    return (result);
+}
+
+static RESULT OV12870_IsiSensorSetStreamingIss
+    (IsiSensorHandle_t handle, bool_t on) {
+    RESULT result = RET_SUCCESS;
+    int ret = 0;
+    TRACE(OV12870_INFO, "%s (enter)\n", __func__);
+
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    if (pOV12870Ctx == NULL || pOV12870Ctx->IsiCtx.HalHandle == NULL) {
+        return RET_NULL_POINTER;
+    }
+
+    HalContext_t *pHalCtx = (HalContext_t *) pOV12870Ctx->IsiCtx.HalHandle;
+
+    if (pOV12870Ctx->Configured != BOOL_TRUE)
+        return RET_WRONG_STATE;
+
+    int32_t enable = (uint32_t) on;
+    ret = OV12870_IsiRegisterWriteIss(handle, 0x100, on);
+
+    if (ret != 0) {
+        return (RET_FAILURE);
+    }
+
+    pOV12870Ctx->Streaming = on;
+
+    TRACE(OV12870_INFO, "%s (exit)\n", __func__);
+    return (result);
+}
+
+static uint32_t sensor_get_chip_id(IsiSensorHandle_t handle, uint32_t *chip_id)
+{
+    RESULT result = RET_SUCCESS;
+    int32_t ret = 0;
+    uint32_t id_val = 0;
+
+    ret = OV12870_IsiRegisterReadIss(handle, 0x6000, &id_val);
+    if (ret != 0) {
+        TRACE(OV12870_ERROR,
+            "%s: Read Sensor correct ID Error! \n", __func__);
+        return (RET_FAILURE);
+    }
+
+    *chip_id |= id_val << 16;
+
+    ret = OV12870_IsiRegisterReadIss(handle, 0x6001, &id_val);
+    if (ret != 0) {
+        TRACE(OV12870_ERROR,
+            "%s: Read Sensor correct ID Error! \n", __func__);
+        return (RET_FAILURE);
+    }
+
+    *chip_id |= id_val << 8;
+
+    ret = OV12870_IsiRegisterReadIss(handle, 0x6002, &id_val);
+    if (ret != 0) {
+        TRACE(OV12870_ERROR,
+            "%s: Read Sensor correct ID Error! \n", __func__);
+        return (RET_FAILURE);
+    }
+
+    *chip_id |= id_val;
+
+    return 0;
+}
+
+static RESULT OV12870_IsiCheckSensorConnectionIss(IsiSensorHandle_t handle) {
+    RESULT result = RET_SUCCESS;
+    int ret = 0;
+    //uint32_t correct_id = 0x12870;
+    uint32_t correct_id = 0x0;
+    uint32_t sensor_id = 0;
+
+    TRACE(OV12870_INFO, "%s (enter)\n", __func__);
+
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    if (pOV12870Ctx == NULL || pOV12870Ctx->IsiCtx.HalHandle == NULL) {
+        return RET_NULL_POINTER;
+    }
+
+    HalContext_t *pHalCtx = (HalContext_t *) pOV12870Ctx->IsiCtx.HalHandle;
+
+    ret = sensor_get_chip_id(handle, &sensor_id);
+    if (ret != 0) {
+        TRACE(OV12870_ERROR,
+            "%s: Read Sensor chip ID Error! \n", __func__);
+        return (RET_FAILURE);
+    }
+
+    if (correct_id != sensor_id) {
+        TRACE(OV12870_ERROR, "%s:ChipID =0x%x sensor_id=%x error! \n",
+              __func__, correct_id, sensor_id);
+        return (RET_FAILURE);
+    }
+
+    TRACE(OV12870_INFO,
+          "%s ChipID = 0x%08x, sensor_id = 0x%08x, success! \n", __func__,
+          correct_id, sensor_id);
+    TRACE(OV12870_INFO, "%s (exit)\n", __func__);
+    return (result);
+}
+
+static RESULT OV12870_IsiGetSensorRevisionIss
+    (IsiSensorHandle_t handle, uint32_t * p_value) {
+    RESULT result = RET_SUCCESS;
+    TRACE(OV12870_INFO, "%s (enter)\n", __func__);
+
+    *p_value = 0x12870;
+    TRACE(OV12870_INFO, "%s (exit)\n", __func__);
+    return (result);
+}
+
+static RESULT OV12870_IsiGetGainLimitsIss
+    (IsiSensorHandle_t handle, float *pMinGain, float *pMaxGain) {
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    RESULT result = RET_SUCCESS;
+
+    /*TODO*/
+
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+
+    if (pOV12870Ctx == NULL) {
+        TRACE(OV12870_ERROR,
+              "%s: Invalid sensor handle (NULL pointer detected)\n",
+              __func__);
+        return (RET_WRONG_HANDLE);
+    }
+
+    if ((pMinGain == NULL) || (pMaxGain == NULL)) {
+        TRACE(OV12870_ERROR, "%s: NULL pointer received!!\n");
+        return (RET_NULL_POINTER);
+    }
+
+    *pMinGain = pOV12870Ctx->AecMinGain;
+    *pMaxGain = pOV12870Ctx->AecMaxGain;
+
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+    return (result);
+}
+
+static RESULT OV12870_IsiGetIntegrationTimeLimitsIss
+    (IsiSensorHandle_t handle,
+     float *pMinIntegrationTime, float *pMaxIntegrationTime) {
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    RESULT result = RET_SUCCESS;
+
+    /*TODO*/
+
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+    if (pOV12870Ctx == NULL) {
+        TRACE(OV12870_ERROR,
+              "%s: Invalid sensor handle (NULL pointer detected)\n",
+              __func__);
+        return (RET_WRONG_HANDLE);
+    }
+
+    if ((pMinIntegrationTime == NULL) || (pMaxIntegrationTime == NULL)) {
+        TRACE(OV12870_ERROR, "%s: NULL pointer received!!\n");
+        return (RET_NULL_POINTER);
+    }
+
+    *pMinIntegrationTime = pOV12870Ctx->AecMinIntegrationTime;
+    *pMaxIntegrationTime = pOV12870Ctx->AecMaxIntegrationTime;
+
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+    return (result);
+}
+
+RESULT OV12870_IsiGetGainIss(IsiSensorHandle_t handle, float *pSetGain) {
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    RESULT result = RET_SUCCESS;
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+
+    if (pOV12870Ctx == NULL) {
+        TRACE(OV12870_ERROR,
+              "%s: Invalid sensor handle (NULL pointer detected)\n",
+              __func__);
+        return (RET_WRONG_HANDLE);
+    }
+
+    if (pSetGain == NULL) {
+        return (RET_NULL_POINTER);
+    }
+
+    *pSetGain = pOV12870Ctx->AecCurGain;
+
+    TRACE(OV12870_INFO, "%s: (exit)\n", __func__);
+    return (result);
+}
+
+RESULT OV12870_IsiGetLongGainIss(IsiSensorHandle_t handle, float *gain)
+{
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+
+    if (pOV12870Ctx == NULL) {
+        TRACE(OV12870_ERROR,"%s: Invalid sensor handle (NULL pointer detected)\n",__func__);
+        return (RET_WRONG_HANDLE);
+    }
+
+    if (gain == NULL) {
+        return (RET_NULL_POINTER);
+    }
+
+    *gain = pOV12870Ctx->AecCurLongGain;
+
+    TRACE(OV12870_INFO, "%s: (exit)\n", __func__);
+
+    return (RET_SUCCESS);
+}
+
+RESULT OV12870_IsiGetVSGainIss(IsiSensorHandle_t handle, float *pSetGain) {
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    RESULT result = RET_SUCCESS;
+
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+
+    if (pOV12870Ctx == NULL) {
+        TRACE(OV12870_ERROR,
+              "%s: Invalid sensor handle (NULL pointer detected)\n",
+              __func__);
+        return (RET_WRONG_HANDLE);
+    }
+
+    if (pSetGain == NULL) {
+        return (RET_NULL_POINTER);
+    }
+
+    *pSetGain = pOV12870Ctx->AecCurVSGain;
+
+    TRACE(OV12870_INFO, "%s: (exit)\n", __func__);
+
+    return (result);
+}
+
+RESULT OV12870_IsiGetGainIncrementIss(IsiSensorHandle_t handle, float *pIncr) {
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    RESULT result = RET_SUCCESS;
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+
+    if (pOV12870Ctx == NULL) {
+        TRACE(OV12870_ERROR,
+              "%s: Invalid sensor handle (NULL pointer detected)\n",
+              __func__);
+        return (RET_WRONG_HANDLE);
+    }
+
+    if (pIncr == NULL)
+        return (RET_NULL_POINTER);
+
+    *pIncr = pOV12870Ctx->AecGainIncrement;
+
+    TRACE(OV12870_INFO, "%s: (exit)\n", __func__);
+
+    return (result);
+}
+
+RESULT OV12870_IsiSetGainIss
+    (IsiSensorHandle_t handle,
+     float NewGain, float *pSetGain, float *hdr_ratio) {
+
+    RESULT result = RET_SUCCESS;
+    int32_t ret = 0;
+    int TmpGain;
+
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    if (pOV12870Ctx == NULL || pOV12870Ctx->IsiCtx.HalHandle == NULL) {
+        return RET_NULL_POINTER;
+    }
+
+    if (NewGain >= 25) { // More than 25 will not take effect
+        NewGain = 25;
+    }
+
+    HalContext_t *pHalCtx = (HalContext_t *) pOV12870Ctx->IsiCtx.HalHandle;
+
+    uint32_t SensorGain = 0;
+    SensorGain = NewGain * pOV12870Ctx->gain_accuracy;
+
+    /*TODO*/
+#if 0
+    ret |= ioctl(pHalCtx->sensor_fd, VVSENSORIOC_S_GAIN, &SensorGain);
+    if (ret != 0) {
+        TRACE(OV12870_ERROR, "%s: set sensor gain error\n",
+                  __func__);
+        return RET_FAILURE;
+    }
+#endif
+
+    pOV12870Ctx->AecCurGain = ((float)(NewGain));
+    TmpGain = (int)NewGain;
+    __ov12870_set_exposure(handle, 0,
+				((int)NewGain << 4) + round((NewGain - TmpGain) / 0.0625f), 0, OV12870_ANALOG_GAIN);
+
+    *pSetGain = pOV12870Ctx->AecCurGain;
+    TRACE(OV12870_DEBUG, "%s: g=%f\n", __func__, *pSetGain);
+    return (result);
+}
+
+RESULT OV12870_IsiSetLongGainIss(IsiSensorHandle_t handle, float gain)
+{
+    int ret = 0;
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+
+    if (!pOV12870Ctx || !pOV12870Ctx->IsiCtx.HalHandle)
+    {
+        TRACE(OV12870_ERROR,"%s: Invalid sensor handle (NULL pointer detected)\n",__func__);
+        return (RET_WRONG_HANDLE);
+    }
+
+    HalContext_t *pHalCtx = (HalContext_t *) pOV12870Ctx->IsiCtx.HalHandle;
+
+    uint32_t SensorGain = 0;
+    SensorGain = gain * pOV12870Ctx->gain_accuracy;
+    if (pOV12870Ctx->LastLongGain != SensorGain)
+    {
+
+        /*TODO*/
+#if 0
+        ret = ioctl(pHalCtx->sensor_fd, VVSENSORIOC_S_LONG_GAIN, &SensorGain);
+        if (ret != 0)
+        {
+            return (RET_FAILURE);
+            TRACE(OV12870_ERROR,"%s: set long gain failed\n");
+
+        }
+#endif
+        pOV12870Ctx->LastLongGain = SensorGain;
+        pOV12870Ctx->AecCurLongGain = gain;
+    }
+
+    TRACE(OV12870_INFO, "%s: (exit)\n", __func__);
+    return (RET_SUCCESS);
+}
+
+RESULT OV12870_IsiSetVSGainIss
+    (IsiSensorHandle_t handle,
+     float NewIntegrationTime,
+     float NewGain, float *pSetGain, float *hdr_ratio) {
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    HalContext_t *pHalCtx = (HalContext_t *) pOV12870Ctx->IsiCtx.HalHandle;
+    RESULT result = RET_SUCCESS;
+#if 0
+    float Gain = 0.0f;
+
+    uint32_t ucGain = 0U;
+    uint32_t again = 0U;
+#endif
+
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+
+    if (!pOV12870Ctx) {
+        TRACE(OV12870_ERROR,
+              "%s: Invalid sensor handle (NULL pointer detected)\n",
+              __func__);
+        return (RET_WRONG_HANDLE);
+    }
+
+    if (!pSetGain || !hdr_ratio)
+        return (RET_NULL_POINTER);
+
+    uint32_t SensorGain = 0;
+    SensorGain = NewGain * pOV12870Ctx->gain_accuracy;
+
+    /*TODO*/
+    //ioctl(pHalCtx->sensor_fd, VVSENSORIOC_S_VSGAIN, &SensorGain);
+
+    pOV12870Ctx->AecCurVSGain = NewGain;
+    *pSetGain = pOV12870Ctx->AecCurGain;
+    TRACE(OV12870_DEBUG, "%s: g=%f\n", __func__, *pSetGain);
+    TRACE(OV12870_INFO, "%s: (exit)\n", __func__);
+    return (result);
+}
+
+RESULT OV12870_IsiSetBayerPattern(IsiSensorHandle_t handle, uint8_t pattern)
+{
+
+    RESULT result = RET_SUCCESS;
+#if 0
+    uint8_t h_shift = 0, v_shift = 0;
+    uint32_t val_h = 0, val_l = 0;
+    uint16_t val = 0;
+    uint8_t Start_p = 0;
+    bool_t streaming_status;
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    if (pOV12870Ctx == NULL || pOV12870Ctx->IsiCtx.HalHandle == NULL) {
+        return RET_NULL_POINTER;
+    }
+
+    // pattern 0:B 1:GB 2:GR 3:R
+    streaming_status = pOV12870Ctx->Streaming;
+    result = OV12870_IsiSensorSetStreamingIss(handle, 0);
+    switch (pattern) {
+    case BAYER_BGGR:
+        Start_p = 0;
+        break;
+    case BAYER_GBRG:
+        Start_p = 1;
+        break;
+    case BAYER_GRBG:
+        Start_p = 2;
+        break;
+    case BAYER_RGGB:
+        Start_p = 3;
+        break;
+    }
+
+    h_shift = Start_p % 2;
+    v_shift = Start_p / 2;
+
+    OV12870_IsiRegisterReadIss(handle, 0x30a0, &val_h);
+    OV12870_IsiRegisterReadIss(handle, 0x30a1, &val_l);
+    val = (((val_h << 8) & 0xff00) | (val_l & 0x00ff)) + h_shift;
+    val_h = (val >> 8) & 0xff;
+    val_l = val & 0xff;
+    OV12870_IsiRegisterWriteIss(handle, 0x30a0, (uint8_t)val_h);
+    OV12870_IsiRegisterWriteIss(handle, 0x30a1, (uint8_t)val_l);
+
+    OV12870_IsiRegisterReadIss(handle, 0x30a2, &val_h);
+    OV12870_IsiRegisterReadIss(handle, 0x30a3, &val_l);
+    val = (((val_h << 8) & 0xff00) | (val_l & 0x00ff)) + v_shift;
+    val_h = (val >> 8) & 0xff;
+    val_l = val & 0xff;
+    OV12870_IsiRegisterWriteIss(handle, 0x30a2, (uint8_t)val_h);
+    OV12870_IsiRegisterWriteIss(handle, 0x30a3, (uint8_t)val_l);
+
+    OV12870_IsiRegisterReadIss(handle, 0x30a4, &val_h);
+    OV12870_IsiRegisterReadIss(handle, 0x30a5, &val_l);
+    val = (((val_h << 8) & 0xff00) | (val_l & 0x00ff)) + h_shift;
+    val_h = (val >> 8) & 0xff;
+    val_l = val & 0xff;
+    OV12870_IsiRegisterWriteIss(handle, 0x30a4, (uint8_t)val_h);
+    OV12870_IsiRegisterWriteIss(handle, 0x30a5, (uint8_t)val_l);
+
+    OV12870_IsiRegisterReadIss(handle, 0x30a6, &val_h);
+    OV12870_IsiRegisterReadIss(handle, 0x30a7, &val_l);
+    val = (((val_h << 8) & 0xff00) | (val_l & 0x00ff)) + v_shift;
+    val_h = (val >> 8) & 0xff;
+    val_l = val & 0xff;
+    OV12870_IsiRegisterWriteIss(handle, 0x30a6, (uint8_t)val_h);
+    OV12870_IsiRegisterWriteIss(handle, 0x30a7, (uint8_t)val_l);
+
+    pOV12870Ctx->pattern = pattern;
+    result = OV12870_IsiSensorSetStreamingIss(handle, streaming_status);
+#endif
+
+    return (result);
+}
+
+RESULT OV12870_IsiGetIntegrationTimeIss
+    (IsiSensorHandle_t handle, float *pSetIntegrationTime)
+{
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    RESULT result = RET_SUCCESS;
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+
+    if (!pOV12870Ctx) {
+        TRACE(OV12870_ERROR,
+              "%s: Invalid sensor handle (NULL pointer detected)\n",
+              __func__);
+        return (RET_WRONG_HANDLE);
+    }
+
+    if (!pSetIntegrationTime)
+        return (RET_NULL_POINTER);
+    *pSetIntegrationTime = pOV12870Ctx->AecCurIntegrationTime;
+    TRACE(OV12870_INFO, "%s: (exit)\n", __func__);
+    return (result);
+}
+
+RESULT OV12870_IsiGetLongIntegrationTimeIss(IsiSensorHandle_t handle, float *pIntegrationTime)
+{
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+
+    if (!pOV12870Ctx) {
+        TRACE(OV12870_ERROR,"%s: Invalid sensor handle (NULL pointer detected)\n",__func__);
+        return (RET_WRONG_HANDLE);
+    }
+    if (!pIntegrationTime)
+        return (RET_NULL_POINTER);
+
+    pOV12870Ctx->AecCurLongIntegrationTime =  pOV12870Ctx->AecCurIntegrationTime;
+
+    *pIntegrationTime = pOV12870Ctx->AecCurLongIntegrationTime;
+    TRACE(OV12870_INFO, "%s: (exit)\n", __func__);
+    return (RET_SUCCESS);
+}
+
+RESULT OV12870_IsiGetVSIntegrationTimeIss
+    (IsiSensorHandle_t handle, float *pSetIntegrationTime)
+{
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    RESULT result = RET_SUCCESS;
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+
+    if (!pOV12870Ctx) {
+        TRACE(OV12870_ERROR,
+              "%s: Invalid sensor handle (NULL pointer detected)\n",
+              __func__);
+        return (RET_WRONG_HANDLE);
+    }
+    if (!pSetIntegrationTime)
+        return (RET_NULL_POINTER);
+
+    *pSetIntegrationTime = pOV12870Ctx->AecCurVSIntegrationTime;
+    TRACE(OV12870_INFO, "%s: (exit)\n", __func__);
+    return (result);
+}
+
+RESULT OV12870_IsiGetIntegrationTimeIncrementIss
+    (IsiSensorHandle_t handle, float *pIncr)
+{
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    RESULT result = RET_SUCCESS;
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+
+    if (!pOV12870Ctx) {
+        TRACE(OV12870_ERROR,
+              "%s: Invalid sensor handle (NULL pointer detected)\n",
+              __func__);
+        return (RET_WRONG_HANDLE);
+    }
+
+    if (!pIncr)
+        return (RET_NULL_POINTER);
+
+    //_smallest_ increment the sensor/driver can handle (e.g. used for sliders in the application)
+    *pIncr = pOV12870Ctx->AecIntegrationTimeIncrement;
+    TRACE(OV12870_INFO, "%s: (exit)\n", __func__);
+    return (result);
+}
+
+RESULT OV12870_IsiSetIntegrationTimeIss
+    (IsiSensorHandle_t handle,
+     float NewIntegrationTime,
+     float *pSetIntegrationTime,
+     uint8_t * pNumberOfFramesToSkip, float *hdr_ratio)
+{
+    RESULT result = RET_SUCCESS;
+
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    HalContext_t *pHalCtx = (HalContext_t *) pOV12870Ctx->IsiCtx.HalHandle;
+
+    uint32_t exp_line = 0;
+    uint32_t exp_line_old = 0;
+
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+
+    if (!pOV12870Ctx) {
+        TRACE(OV12870_ERROR,
+              "%s: Invalid sensor handle (NULL pointer detected)\n",
+              __func__);
+        return (RET_WRONG_HANDLE);
+    }
+
+    if (!pSetIntegrationTime || !pNumberOfFramesToSkip) {
+        TRACE(OV12870_ERROR,
+              "%s: Invalid parameter (NULL pointer detected)\n",
+              __func__);
+        return (RET_NULL_POINTER);
+    }
+
+    exp_line = NewIntegrationTime / pOV12870Ctx->one_line_exp_time;
+    exp_line_old = exp_line;
+    exp_line =
+        MIN(pOV12870Ctx->MaxIntegrationLine,
+        MAX(pOV12870Ctx->MinIntegrationLine, exp_line));
+
+    TRACE(OV12870_DEBUG, "%s: set AEC_PK_EXPO=0x%05x\n", __func__, exp_line);
+
+    if (exp_line != pOV12870Ctx->OldIntegrationTime) {
+
+        /*TODO*/
+        //ioctl(pHalCtx->sensor_fd, VVSENSORIOC_S_EXP, &exp_line);
+        pOV12870Ctx->OldIntegrationTime = exp_line;    // remember current integration time
+        pOV12870Ctx->AecCurIntegrationTime =
+            exp_line * pOV12870Ctx->one_line_exp_time;
+
+        *pNumberOfFramesToSkip = 1U;    //skip 1 frame
+    } else {
+        *pNumberOfFramesToSkip = 0U;    //no frame skip
+    }
+    uint32_t reg_h = (exp_line & 0xff00) >> 8;
+    uint32_t reg_l = (exp_line & 0xff);
+
+
+    int ret = OV12870_IsiRegisterWriteIss(handle, 0x3501, reg_h);
+    if (ret != 0) {
+        TRACE(OV12870_ERROR, "%s: sensor reset error!\n", __func__);
+        return (RET_FAILURE);
+    }
+
+    ret = OV12870_IsiRegisterWriteIss(handle, 0x3502, reg_l);
+    if (ret != 0) {
+        TRACE(OV12870_ERROR, "%s: sensor reset error!\n", __func__);
+        return (RET_FAILURE);
+    }
+
+
+    if (exp_line_old != exp_line) {
+        *pSetIntegrationTime = pOV12870Ctx->AecCurIntegrationTime;
+    } else {
+        *pSetIntegrationTime = NewIntegrationTime;
+    }
+
+    TRACE(OV12870_DEBUG, "%s: Ti=%f\n", __func__, *pSetIntegrationTime);
+    TRACE(OV12870_INFO, "%s: (exit)\n", __func__);
+    return (result);
+}
+
+RESULT OV12870_IsiSetLongIntegrationTimeIss(IsiSensorHandle_t handle,float IntegrationTime)
+{
+    int ret;
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    if (!handle || !pOV12870Ctx->IsiCtx.HalHandle)
+    {
+        TRACE(OV12870_ERROR,"%s: Invalid sensor handle (NULL pointer detected)\n",__func__);
+        return (RET_WRONG_HANDLE);
+    }
+    HalContext_t *pHalCtx = (HalContext_t *) pOV12870Ctx->IsiCtx.HalHandle;
+
+    uint32_t exp_line = 0;
+    exp_line = IntegrationTime / pOV12870Ctx->one_line_exp_time;
+    exp_line = MIN(pOV12870Ctx->MaxIntegrationLine, MAX(pOV12870Ctx->MinIntegrationLine, exp_line));
+
+    if (exp_line != pOV12870Ctx->LastLongExpLine)
+    {
+        if (pOV12870Ctx->KernelDriverFlag)
+        {
+            ret = ioctl(pHalCtx->sensor_fd, VVSENSORIOC_S_LONG_EXP, &exp_line);
+            if (ret != 0)
+            {
+                TRACE(OV12870_ERROR,"%s: set long gain failed\n");
+                return RET_FAILURE;
+            }
+        }
+
+        pOV12870Ctx->LastLongExpLine = exp_line;
+        pOV12870Ctx->AecCurLongIntegrationTime =  pOV12870Ctx->LastLongExpLine*pOV12870Ctx->one_line_exp_time;
+    }
+
+
+    TRACE(OV12870_INFO, "%s: (exit)\n", __func__);
+    return (RET_SUCCESS);
+}
+
+RESULT OV12870_IsiSetVSIntegrationTimeIss
+    (IsiSensorHandle_t handle,
+     float NewIntegrationTime,
+     float *pSetVSIntegrationTime,
+     uint8_t * pNumberOfFramesToSkip, float *hdr_ratio)
+{
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    RESULT result = RET_SUCCESS;
+    uint32_t exp_line = 0;
+
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+
+    if (!pOV12870Ctx) {
+        TRACE(OV12870_ERROR,
+              "%s: Invalid sensor handle (NULL pointer detected)\n",
+              __func__);
+        return (RET_WRONG_HANDLE);
+    }
+
+    if (!pSetVSIntegrationTime || !pNumberOfFramesToSkip) {
+        TRACE(OV12870_ERROR,
+              "%s: Invalid parameter (NULL pointer detected)\n",
+              __func__);
+        return (RET_NULL_POINTER);
+    }
+
+    TRACE(OV12870_INFO,
+          "%s:  maxIntegrationTime-=%f minIntegrationTime = %f\n", __func__,
+          pOV12870Ctx->AecMaxIntegrationTime,
+          pOV12870Ctx->AecMinIntegrationTime);
+
+
+    exp_line = NewIntegrationTime / pOV12870Ctx->one_line_exp_time;
+    exp_line =
+        MIN(pOV12870Ctx->MaxIntegrationLine,
+        MAX(pOV12870Ctx->MinIntegrationLine, exp_line));
+
+    if (exp_line != pOV12870Ctx->OldVsIntegrationTime) {
+    /*TODO*/
+    //    ioctl(pHalCtx->sensor_fd, VVSENSORIOC_S_VSEXP, &exp_line);
+    } else if (1){
+
+        pOV12870Ctx->OldVsIntegrationTime = exp_line;
+        pOV12870Ctx->AecCurVSIntegrationTime = exp_line * pOV12870Ctx->one_line_exp_time;    //remember current integration time
+        *pNumberOfFramesToSkip = 1U;    //skip 1 frame
+    } else {
+        *pNumberOfFramesToSkip = 0U;    //no frame skip
+    }
+
+    *pSetVSIntegrationTime = pOV12870Ctx->AecCurVSIntegrationTime;
+
+    TRACE(OV12870_DEBUG, "%s: NewIntegrationTime=%f\n", __func__,
+          NewIntegrationTime);
+    TRACE(OV12870_INFO, "%s: (exit)\n", __func__);
+    return (result);
+}
+
+RESULT OV12870_IsiExposureControlIss
+    (IsiSensorHandle_t handle,
+     float NewGain,
+     float NewIntegrationTime,
+     uint8_t * pNumberOfFramesToSkip,
+     float *pSetGain, float *pSetIntegrationTime, float *hdr_ratio)
+{
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    RESULT result = RET_SUCCESS;
+    int TmpGain;
+    /*TODO*/
+
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+
+    if (pOV12870Ctx == NULL) {
+        TRACE(OV12870_ERROR,
+              "%s: Invalid sensor handle (NULL pointer detected)\n",
+              __func__);
+        return (RET_WRONG_HANDLE);
+    }
+
+    if ((pNumberOfFramesToSkip == NULL) || (pSetGain == NULL)
+        || (pSetIntegrationTime == NULL)) {
+        TRACE(OV12870_ERROR,
+              "%s: Invalid parameter (NULL pointer detected)\n",
+              __func__);
+        return (RET_NULL_POINTER);
+    }
+
+    if (NewGain >= 25) { // More than 25 will not take effect
+        NewGain = 25;
+    }
+
+    TRACE(OV12870_DEBUG, "%s: g=%f, Ti=%f\n", __func__, NewGain,
+          NewIntegrationTime);
+
+    if (NewIntegrationTime > pOV12870Ctx->FrameLengthLines * pOV12870Ctx->one_line_exp_time)
+        NewIntegrationTime = pOV12870Ctx->FrameLengthLines * pOV12870Ctx->one_line_exp_time;
+
+    float exp_t = NewIntegrationTime * 16.0f / pOV12870Ctx->one_line_exp_time;
+
+    TmpGain = (int)NewGain;
+
+    __ov12870_set_exposure(handle, (int)exp_t,
+				((int)NewGain << 4) + round((NewGain - TmpGain) / 0.0625f), 1024, OV12870_ANALOG_GAIN | OV12870_INTEGRATION_TIME | OV12870_DIGITAL_GAIN);
+
+    *pSetGain = NewGain;
+    *pSetIntegrationTime = (int)exp_t / 16.0f * pOV12870Ctx->one_line_exp_time;
+    pOV12870Ctx->AecCurGain = NewGain;
+    pOV12870Ctx->AecCurIntegrationTime = *pSetIntegrationTime;
+
+#if 0
+    float long_gain=0;
+    float long_exp=0;
+    float short_gain=0;
+    float short_exp=0;
+
+    if (pOV12870Ctx->SensorMode.hdr_mode != SENSOR_MODE_LINEAR)
+    {
+
+        long_exp = NewIntegrationTime;
+        long_gain = NewGain;
+
+        float short_exposure_measure = NewIntegrationTime*NewGain / *hdr_ratio;
+
+        if (short_exposure_measure < 48 * pOV12870Ctx->one_line_exp_time * pOV12870Ctx->AecMinGain)
+        {
+            short_exp = short_exposure_measure / pOV12870Ctx->AecMinGain;
+            short_gain = pOV12870Ctx->AecMinGain;
+        }else
+        {
+            short_exp = 48 * pOV12870Ctx->one_line_exp_time;
+            short_gain = short_exposure_measure / short_exp;
+        }
+
+    }else
+    {
+        long_exp = NewIntegrationTime;
+        long_gain = NewGain;
+    }
+
+    if (pOV12870Ctx->SensorMode.hdr_mode != SENSOR_MODE_LINEAR)
+    {
+        result = OV12870_IsiSetVSIntegrationTimeIss(handle,
+                              short_exp,
+                              pSetIntegrationTime,
+                              pNumberOfFramesToSkip,
+                              hdr_ratio);
+        result =
+            OV12870_IsiSetVSGainIss(handle, short_exp, short_gain,
+                       pSetGain, hdr_ratio);
+
+        result = OV12870_IsiSetLongGainIss(handle, long_gain * (*hdr_ratio));
+    }
+    TRACE(OV12870_DEBUG, "%s: set: NewGain=%f, hcgTi=%f, hcgskip=%d\n",
+          __func__, NewGain, NewIntegrationTime, *pNumberOfFramesToSkip);
+    result = OV12870_IsiSetGainIss(handle, long_gain, pSetGain, hdr_ratio);
+    TRACE(OV12870_DEBUG, "%s: set: NewGain=%f, hcgTi=%f, hcgskip=%d\n",
+          __func__, NewGain, NewIntegrationTime, *pNumberOfFramesToSkip);
+
+    pOV12870Ctx->CurHdrRatio = *hdr_ratio;
+#endif
+
+    result = OV12870_IsiSetIntegrationTimeIss(handle, NewIntegrationTime, pSetIntegrationTime, pNumberOfFramesToSkip, hdr_ratio);
+    TRACE(OV12870_DEBUG, "%s: set: vsg=%f, vsTi=%f, vsskip=%d\n", __func__,
+          NewGain, NewIntegrationTime, *pNumberOfFramesToSkip);
+    TRACE(OV12870_INFO, "%s: (exit)\n", __func__);
+
+    return result;
+}
+
+RESULT OV12870_IsiGetCurrentExposureIss
+    (IsiSensorHandle_t handle, float *pSetGain, float *pSetIntegrationTime, float *hdr_ratio) {
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    RESULT result = RET_SUCCESS;
+
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+
+    if (pOV12870Ctx == NULL) {
+        TRACE(OV12870_ERROR,
+              "%s: Invalid sensor handle (NULL pointer detected)\n",
+              __func__);
+        return (RET_WRONG_HANDLE);
+    }
+
+    if ((pSetGain == NULL) || (pSetIntegrationTime == NULL))
+        return (RET_NULL_POINTER);
+
+    *pSetGain = pOV12870Ctx->AecCurGain;
+    *pSetIntegrationTime = pOV12870Ctx->AecCurIntegrationTime;
+    *hdr_ratio = pOV12870Ctx->CurHdrRatio;
+
+    TRACE(OV12870_INFO, "%s: (exit)\n", __func__);
+    return (result);
+}
+
+RESULT OV12870_IsiGetResolutionIss(IsiSensorHandle_t handle, uint16_t *pwidth, uint16_t *pheight) {
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    RESULT result = RET_SUCCESS;
+
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+
+    if (pOV12870Ctx == NULL) {
+        TRACE(OV12870_ERROR,
+              "%s: Invalid sensor handle (NULL pointer detected)\n",
+              __func__);
+        return (RET_WRONG_HANDLE);
+    }
+
+    *pwidth = pOV12870Ctx->SensorMode.width;
+    *pheight =  pOV12870Ctx->SensorMode.height;
+
+    TRACE(OV12870_INFO, "%s: (exit)\n", __func__);
+    return (result);
+}
+
+RESULT OV12870_IsiGetSensorFpsIss(IsiSensorHandle_t handle, uint32_t * pfps)
+{
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    RESULT result = RET_SUCCESS;
+
+
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+
+    if (pOV12870Ctx == NULL) {
+        TRACE(OV12870_ERROR,
+              "%s: Invalid sensor handle (NULL pointer detected)\n",
+              __func__);
+        return (RET_WRONG_HANDLE);
+    }
+    HalContext_t *pHalCtx = (HalContext_t *) pOV12870Ctx->IsiCtx.HalHandle;
+
+    if (pOV12870Ctx->KernelDriverFlag) {
+       /*TODO*/
+        ioctl(pHalCtx->sensor_fd, VVSENSORIOC_G_FPS, pfps);
+        pOV12870Ctx->CurrFps = *pfps;
+    }
+
+    *pfps = pOV12870Ctx->CurrFps;
+
+    TRACE(OV12870_INFO, "%s: (exit)\n", __func__);
+    return (result);
+}
+
+RESULT OV12870_IsiSetSensorFpsIss(IsiSensorHandle_t handle, uint32_t fps)
+{
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    RESULT result = RET_SUCCESS;
+    int32_t ret = 0;
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+
+    if (pOV12870Ctx == NULL) {
+        TRACE(OV12870_ERROR,
+              "%s: Invalid sensor handle (NULL pointer detected)\n",
+              __func__);
+        return (RET_WRONG_HANDLE);
+    }
+    HalContext_t *pHalCtx = (HalContext_t *) pOV12870Ctx->IsiCtx.HalHandle;
+
+    if (fps > pOV12870Ctx->MaxFps) {
+        TRACE(OV12870_ERROR,
+              "%s: set fps(%d) out of range, correct to %d (%d, %d)\n",
+              __func__, fps, pOV12870Ctx->MaxFps, pOV12870Ctx->MinFps,
+              pOV12870Ctx->MaxFps);
+        fps = pOV12870Ctx->MaxFps;
+    }
+    if (fps < pOV12870Ctx->MinFps) {
+        TRACE(OV12870_ERROR,
+              "%s: set fps(%d) out of range, correct to %d (%d, %d)\n",
+              __func__, fps, pOV12870Ctx->MinFps, pOV12870Ctx->MinFps,
+              pOV12870Ctx->MaxFps);
+        fps = pOV12870Ctx->MinFps;
+    }
+    if (pOV12870Ctx->KernelDriverFlag) {
+        ret = ioctl(pHalCtx->sensor_fd, VVSENSORIOC_S_FPS, &fps);
+        if (ret != 0) {
+            TRACE(OV12870_ERROR, "%s: set sensor fps=%d error\n",
+                  __func__);
+            return (RET_FAILURE);
+        }
+
+        ret = ioctl(pHalCtx->sensor_fd, VVSENSORIOC_G_SENSOR_MODE, &(pOV12870Ctx->SensorMode));
+        {
+            pOV12870Ctx->MaxIntegrationLine = pOV12870Ctx->SensorMode.ae_info.max_integration_time;
+            pOV12870Ctx->AecMaxIntegrationTime = pOV12870Ctx->MaxIntegrationLine * pOV12870Ctx->one_line_exp_time;
+        }
+#ifdef SUBDEV_CHAR
+        struct vvcam_ae_info_s ae_info;
+        ret =
+            ioctl(pHalCtx->sensor_fd, VVSENSORIOC_G_AE_INFO, &ae_info);
+        if (ret != 0) {
+            TRACE(OV12870_ERROR, "%s:sensor get ae info error!\n",
+                  __func__);
+            return (RET_FAILURE);
+        }
+        pOV12870Ctx->one_line_exp_time =
+            (float)ae_info.one_line_exp_time_ns / 1000000000;
+        pOV12870Ctx->MaxIntegrationLine = ae_info.max_integration_time;
+        pOV12870Ctx->AecMaxIntegrationTime =
+            pOV12870Ctx->MaxIntegrationLine *
+            pOV12870Ctx->one_line_exp_time;
+#endif
+    }
+
+    TRACE(OV12870_INFO, "%s: set sensor fps = %d\n", __func__,
+          pOV12870Ctx->CurrFps);
+
+    TRACE(OV12870_INFO, "%s: (exit)\n", __func__);
+    return (result);
+}
+
+static RESULT OV12870_IsiActivateTestPattern(IsiSensorHandle_t handle,
+                        const bool_t enable)
+{
+    RESULT result = RET_SUCCESS;
+
+    TRACE(OV12870_INFO, "%s: (enter)\n", __func__);
+
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    if (pOV12870Ctx == NULL || pOV12870Ctx->IsiCtx.HalHandle == NULL) {
+        return RET_NULL_POINTER;
+    }
+
+    if (pOV12870Ctx->Configured != BOOL_TRUE)
+        return RET_WRONG_STATE;
+
+    if (BOOL_TRUE == enable) {
+        //result = OV12870_IsiRegisterWriteIss(handle, 0x3253, 0x80);
+    } else {
+        //result = OV12870_IsiRegisterWriteIss(handle, 0x3253, 0x00);
+    }
+    pOV12870Ctx->TestPattern = enable;
+
+    TRACE(OV12870_INFO, "%s: (exit)\n", __func__);
+
+    return (result);
+}
+
+static RESULT OV12870_IsiSensorSetBlcIss(IsiSensorHandle_t handle, sensor_blc_t * pblc)
+{
+    int32_t ret = 0;
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    if (pOV12870Ctx == NULL || pOV12870Ctx->IsiCtx.HalHandle == NULL) {
+        return RET_WRONG_HANDLE;
+    }
+
+    if (pblc == NULL)
+        return RET_NULL_POINTER;
+
+    HalContext_t *pHalCtx = (HalContext_t *) pOV12870Ctx->IsiCtx.HalHandle;
+
+    ret = ioctl(pHalCtx->sensor_fd, VVSENSORIOC_S_BLC, pblc);
+    if (ret != 0)
+    {
+         TRACE(OV12870_ERROR, "%s: set wb error\n", __func__);
+    }
+
+    return RET_SUCCESS;
+}
+
+static RESULT OV12870_IsiSensorSetWBIss(IsiSensorHandle_t handle, sensor_white_balance_t * pwb)
+{
+    int32_t ret = 0;
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    if (pOV12870Ctx == NULL || pOV12870Ctx->IsiCtx.HalHandle == NULL) {
+        return RET_WRONG_HANDLE;
+    }
+    HalContext_t *pHalCtx = (HalContext_t *) pOV12870Ctx->IsiCtx.HalHandle;
+
+    if (pwb == NULL)
+        return RET_NULL_POINTER;
+
+    ret = ioctl(pHalCtx->sensor_fd, VVSENSORIOC_S_WB, pwb);
+    if (ret != 0)
+    {
+         TRACE(OV12870_ERROR, "%s: set wb error\n", __func__);
+    }
+
+    return RET_SUCCESS;
+}
+
+static RESULT OV12870_IsiGetSensorAWBModeIss(IsiSensorHandle_t  handle, IsiSensorAwbMode_t *pawbmode)
+{
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    if (pOV12870Ctx == NULL || pOV12870Ctx->IsiCtx.HalHandle == NULL) {
+        return RET_NULL_POINTER;
+    }
+    if (pOV12870Ctx->SensorMode.hdr_mode == SENSOR_MODE_HDR_NATIVE){
+        *pawbmode = ISI_SENSOR_AWB_MODE_SENSOR;
+    }else{
+        *pawbmode = ISI_SENSOR_AWB_MODE_NORMAL;
+    }
+    return RET_SUCCESS;
+}
+
+static RESULT OV12870_IsiSensorGetExpandCurveIss(IsiSensorHandle_t handle, sensor_expand_curve_t * pexpand_curve)
+{
+    int32_t ret = 0;
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+    if (pOV12870Ctx == NULL || pOV12870Ctx->IsiCtx.HalHandle == NULL) {
+        return RET_NULL_POINTER;
+    }
+    HalContext_t *pHalCtx = (HalContext_t *) pOV12870Ctx->IsiCtx.HalHandle;
+
+    ret = ioctl(pHalCtx->sensor_fd, VVSENSORIOC_G_EXPAND_CURVE, pexpand_curve);
+    if (ret != 0)
+    {
+        TRACE(OV12870_ERROR, "%s: get  expand cure error\n", __func__);
+        return RET_FAILURE;
+    }
+
+    return RET_SUCCESS;
+}
+
+static RESULT OV12870_IsiGetCapsIss(IsiSensorHandle_t handle,
+                         IsiSensorCaps_t * pIsiSensorCaps)
+{
+    OV12870_Context_t *pOV12870Ctx = (OV12870_Context_t *) handle;
+
+    RESULT result = RET_SUCCESS;
+
+    TRACE(OV12870_INFO, "%s (enter)\n", __func__);
+
+    if (pOV12870Ctx == NULL) {
+        return (RET_WRONG_HANDLE);
+    }
+
+    if (pIsiSensorCaps == NULL) {
+        return (RET_NULL_POINTER);
+    }
+
+    pIsiSensorCaps->BusWidth = pOV12870Ctx->SensorMode.bit_width;
+    pIsiSensorCaps->Mode = ISI_MODE_BAYER;
+    pIsiSensorCaps->FieldSelection = ISI_FIELDSEL_BOTH;
+    pIsiSensorCaps->YCSequence = ISI_YCSEQ_YCBYCR;
+    pIsiSensorCaps->Conv422 = ISI_CONV422_NOCOSITED;
+    pIsiSensorCaps->BPat = pOV12870Ctx->SensorMode.bayer_pattern;
+    pIsiSensorCaps->HPol = ISI_HPOL_REFPOS;
+    pIsiSensorCaps->VPol = ISI_VPOL_NEG;
+    pIsiSensorCaps->Edge = ISI_EDGE_RISING;
+    pIsiSensorCaps->Resolution.width = pOV12870Ctx->SensorMode.width;
+    pIsiSensorCaps->Resolution.height = pOV12870Ctx->SensorMode.height;
+    pIsiSensorCaps->SmiaMode = ISI_SMIA_OFF;
+    pIsiSensorCaps->MipiLanes = ISI_MIPI_2LANES;
+
+    if (pIsiSensorCaps->BusWidth == 10) {
+        pIsiSensorCaps->MipiMode      = ISI_MIPI_MODE_RAW_10;
+    }else if (pIsiSensorCaps->BusWidth == 12){
+        pIsiSensorCaps->MipiMode      = ISI_MIPI_MODE_RAW_12;
+    }else{
+        pIsiSensorCaps->MipiMode      = ISI_MIPI_OFF;
+    }
+
+    TRACE(OV12870_INFO, "%s (exit)\n", __func__);
+    return result;
+}
+
+RESULT OV12870_IsiGetSensorIss(IsiSensor_t *pIsiSensor)
+{
+    RESULT result = RET_SUCCESS;
+    TRACE( OV12870_INFO, "%s (enter)\n", __func__);
+
+    if ( pIsiSensor != NULL ) {
+        pIsiSensor->pszName                         = SensorName;
+        pIsiSensor->pIsiCreateSensorIss             = OV12870_IsiCreateSensorIss;
+
+        pIsiSensor->pIsiInitSensorIss               = OV12870_IsiInitSensorIss;
+        pIsiSensor->pIsiGetSensorModeIss            = OV12870_IsiGetSensorModeIss;
+        pIsiSensor->pIsiResetSensorIss              = OV12870_IsiResetSensorIss;
+        pIsiSensor->pIsiReleaseSensorIss            = OV12870_IsiReleaseSensorIss;
+        pIsiSensor->pIsiGetCapsIss                  = OV12870_IsiGetCapsIss;
+        pIsiSensor->pIsiSetupSensorIss              = OV12870_IsiSetupSensorIss;
+        pIsiSensor->pIsiChangeSensorResolutionIss   = OV12870_IsiChangeSensorResolutionIss;
+        pIsiSensor->pIsiSensorSetStreamingIss       = OV12870_IsiSensorSetStreamingIss;
+        pIsiSensor->pIsiSensorSetPowerIss           = OV12870_IsiSensorSetPowerIss;
+        pIsiSensor->pIsiCheckSensorConnectionIss    = OV12870_IsiCheckSensorConnectionIss;
+        pIsiSensor->pIsiGetSensorRevisionIss        = OV12870_IsiGetSensorRevisionIss;
+        pIsiSensor->pIsiRegisterReadIss             = OV12870_IsiRegisterReadIss;
+        pIsiSensor->pIsiRegisterWriteIss            = OV12870_IsiRegisterWriteIss;
+
+        /* AEC functions */
+        pIsiSensor->pIsiExposureControlIss          = OV12870_IsiExposureControlIss;
+        pIsiSensor->pIsiGetGainLimitsIss            = OV12870_IsiGetGainLimitsIss;
+        pIsiSensor->pIsiGetIntegrationTimeLimitsIss = OV12870_IsiGetIntegrationTimeLimitsIss;
+        pIsiSensor->pIsiGetCurrentExposureIss       = OV12870_IsiGetCurrentExposureIss;
+        pIsiSensor->pIsiGetVSGainIss                    = OV12870_IsiGetVSGainIss;
+        pIsiSensor->pIsiGetGainIss                      = OV12870_IsiGetGainIss;
+        pIsiSensor->pIsiGetLongGainIss                  = OV12870_IsiGetLongGainIss;
+        pIsiSensor->pIsiGetGainIncrementIss             = OV12870_IsiGetGainIncrementIss;
+        pIsiSensor->pIsiSetGainIss                      = OV12870_IsiSetGainIss;
+        pIsiSensor->pIsiGetIntegrationTimeIss           = OV12870_IsiGetIntegrationTimeIss;
+        pIsiSensor->pIsiGetVSIntegrationTimeIss         = OV12870_IsiGetVSIntegrationTimeIss;
+        pIsiSensor->pIsiGetLongIntegrationTimeIss       = OV12870_IsiGetLongIntegrationTimeIss;
+        pIsiSensor->pIsiGetIntegrationTimeIncrementIss  = OV12870_IsiGetIntegrationTimeIncrementIss;
+        pIsiSensor->pIsiSetIntegrationTimeIss           = OV12870_IsiSetIntegrationTimeIss;
+        pIsiSensor->pIsiQuerySensorIss                  = OV12870_IsiQuerySensorIss;
+        pIsiSensor->pIsiGetResolutionIss                = OV12870_IsiGetResolutionIss;
+        pIsiSensor->pIsiGetSensorFpsIss                 = OV12870_IsiGetSensorFpsIss;
+        pIsiSensor->pIsiSetSensorFpsIss                 = OV12870_IsiSetSensorFpsIss;
+        pIsiSensor->pIsiSensorGetExpandCurveIss         = OV12870_IsiSensorGetExpandCurveIss;
+
+        /* AWB specific functions */
+
+        /* Testpattern */
+        pIsiSensor->pIsiActivateTestPattern         = OV12870_IsiActivateTestPattern;
+        pIsiSensor->pIsiSetBayerPattern             = OV12870_IsiSetBayerPattern;
+
+        pIsiSensor->pIsiSensorSetBlcIss             = OV12870_IsiSensorSetBlcIss;
+        pIsiSensor->pIsiSensorSetWBIss              = OV12870_IsiSensorSetWBIss;
+        pIsiSensor->pIsiGetSensorAWBModeIss         = OV12870_IsiGetSensorAWBModeIss;
+
+    } else {
+        result = RET_NULL_POINTER;
+    }
+
+    TRACE( OV12870_INFO, "%s (exit)\n", __func__);
+    return ( result );
+}
+
+/*****************************************************************************
+* each sensor driver need declare this struct for isi load
+*****************************************************************************/
+IsiCamDrvConfig_t OV12870_IsiCamDrvConfig = {
+    0,
+    OV12870_IsiQuerySensorSupportIss,
+    OV12870_IsiGetSensorIss,
+    {
+     SensorName,            /**< IsiSensor_t.pszName */
+     0,            /**< IsiSensor_t.pIsiInitIss>*/
+     0,            /**< IsiSensor_t.pIsiResetSensorIss>*/
+     0,            /**< IsiSensor_t.pRegisterTable */
+     0,            /**< IsiSensor_t.pIsiSensorCaps */
+     0,            /**< IsiSensor_t.pIsiCreateSensorIss */
+     0,            /**< IsiSensor_t.pIsiReleaseSensorIss */
+     0,            /**< IsiSensor_t.pIsiGetCapsIss */
+     0,            /**< IsiSensor_t.pIsiSetupSensorIss */
+     0,            /**< IsiSensor_t.pIsiChangeSensorResolutionIss */
+     0,            /**< IsiSensor_t.pIsiSensorSetStreamingIss */
+     0,            /**< IsiSensor_t.pIsiSensorSetPowerIss */
+     0,            /**< IsiSensor_t.pIsiCheckSensorConnectionIss */
+     0,            /**< IsiSensor_t.pIsiGetSensorRevisionIss */
+     0,            /**< IsiSensor_t.pIsiRegisterReadIss */
+     0,            /**< IsiSensor_t.pIsiRegisterWriteIss */
+
+     0,            /**< IsiSensor_t.pIsiExposureControlIss */
+     0,            /**< IsiSensor_t.pIsiGetGainLimitsIss */
+     0,            /**< IsiSensor_t.pIsiGetIntegrationTimeLimitsIss */
+     0,            /**< IsiSensor_t.pIsiGetCurrentExposureIss */
+     0,            /**< IsiSensor_t.pIsiGetGainIss */
+     0,            /**< IsiSensor_t.pIsiGetVSGainIss */
+     0,            /**< IsiSensor_t.pIsiGetGainIncrementIss */
+     0,            /**< IsiSensor_t.pIsiGetGainIncrementIss */
+     0,            /**< IsiSensor_t.pIsiSetGainIss */
+     0,            /**< IsiSensor_t.pIsiGetIntegrationTimeIss */
+     0,            /**< IsiSensor_t.pIsiGetIntegrationTimeIncrementIss */
+     0,            /**< IsiSensor_t.pIsiSetIntegrationTimeIss */
+     0,            /**< IsiSensor_t.pIsiGetResolutionIss */
+     0,            /**< IsiSensor_t.pIsiGetAfpsInfoIss */
+
+     0,            /**< IsiSensor_t.pIsiMdiInitMotoDriveMds */
+     0,            /**< IsiSensor_t.pIsiMdiSetupMotoDrive */
+     0,            /**< IsiSensor_t.pIsiMdiFocusSet */
+     0,            /**< IsiSensor_t.pIsiMdiFocusGet */
+     0,            /**< IsiSensor_t.pIsiMdiFocusCalibrate */
+     0,            /**< IsiSensor_t.pIsiGetSensorMipiInfoIss */
+     0,            /**< IsiSensor_t.pIsiActivateTestPattern */
+     0,            /**< IsiSensor_t.pIsiSetBayerPattern */
+     }
+};

File diff suppressed because it is too large
+ 544 - 0
drivers/OV12870/OV12870.xml


File diff suppressed because it is too large
+ 64 - 64
drivers/OV12870/OV12870_1920x1080.xml


File diff suppressed because it is too large
+ 544 - 0
drivers/OV12870/OV12870_4096x3072.xml


File diff suppressed because it is too large
+ 544 - 0
drivers/OV12870/OV12870_640x480.xml


+ 1221 - 0
drivers/OV12870/OV12870_mipi4lane_1920x1080_1200_30f.txt

@@ -0,0 +1,1221 @@
+0x0300 0xf8
+0x0300 0xf8
+0x0300 0xf8
+0x0300 0xf8
+0x0301 0x24
+0x0302 0x10
+0x0303 0x00
+0x0304 0x25
+0x031a 0x01
+0x0316 0x5a
+0x0317 0x00
+0x0318 0x05
+0x031d 0x0b
+0x0320 0x12
+0x031e 0x09
+0x300d 0x11
+0x3012 0x41
+0x3016 0xb4
+0x3018 0xf0
+0x3019 0xe1
+0x301b 0x16
+0x3023 0xb4
+0x3028 0x0f
+0x3106 0x00
+0x3400 0x00
+0x340c 0x0c
+0x340d 0xce
+0x3501 0x0c
+0x3502 0xe1
+0x3503 0x80
+0x3505 0x80
+0x3507 0x00
+0x3508 0x04
+0x3509 0x00
+0x350a 0x00
+0x350b 0x01
+0x350e 0x00
+0x350f 0x01
+0x350c 0x04
+0x350d 0x00
+0x3511 0x02
+0x3512 0x00
+0x3600 0x00
+0x3602 0x0a
+0x3603 0x00
+0x3608 0xd7
+0x360a 0x70
+0x360b 0x0b
+0x360c 0x3a
+0x360d 0x47
+0x360e 0x02
+0x3611 0x06
+0x3612 0x12
+0x3613 0x22
+0x3618 0x94
+0x3619 0x83
+0x361a 0x24
+0x3621 0x88
+0x3622 0x68
+0x3623 0x58
+0x3624 0x83
+0x3626 0x99
+0x3627 0x60
+0x3628 0x84
+0x3629 0x00
+0x362a 0x05
+0x3632 0x00
+0x3633 0x0a
+0x3634 0x10
+0x3635 0x10
+0x3636 0x10
+0x3652 0xff
+0x3653 0xff
+0x3660 0x40
+0x3661 0x0c
+0x3662 0x40
+0x3663 0x00
+0x3666 0xa5
+0x366a 0x10
+0x366c 0x54
+0x4a00 0x08
+0x3680 0x08
+0x369e 0x00
+0x369f 0x2a
+0x36a0 0x00
+0x36a1 0x64
+0x36a2 0x00
+0x36a3 0x8c
+0x36a4 0x00
+0x36a5 0xbc
+0x36a6 0x00
+0x36a7 0xe0
+0x36a8 0x00
+0x36a9 0xf4
+0x36aa 0x01
+0x36ab 0x04
+0x36ac 0x01
+0x36ad 0x04
+0x36ae 0x01
+0x36af 0x04
+0x3687 0x88
+0x3688 0x88
+0x3689 0x88
+0x368a 0x88
+0x368b 0x08
+0x3700 0x26
+0x3701 0x1c
+0x3702 0x54
+0x3703 0x28
+0x3704 0x24
+0x3705 0x00
+0x3706 0x50
+0x3707 0x08
+0x3708 0x2e
+0x3709 0xce
+0x370a 0x00
+0x370b 0xe4
+0x370c 0x06
+0x370f 0x0a
+0x3710 0x30
+0x3711 0x00
+0x3712 0x40
+0x3714 0x67
+0x3715 0x00
+0x3717 0x02
+0x3718 0x14
+0x3719 0x31
+0x371a 0x1c
+0x371b 0xd2
+0x371c 0x04
+0x371d 0x20
+0x371e 0x13
+0x371f 0x0a
+0x3720 0x03
+0x3722 0x33
+0x3723 0x08
+0x3724 0x34
+0x3725 0x30
+0x3726 0x20
+0x372b 0x00
+0x372d 0x00
+0x3730 0x06
+0x3731 0x06
+0x3732 0x06
+0x3733 0x06
+0x3734 0x06
+0x3735 0x06
+0x3736 0x0a
+0x3737 0x02
+0x3738 0x0a
+0x3739 0x02
+0x373a 0x0a
+0x373b 0x28
+0x373c 0x0a
+0x373d 0x2a
+0x373e 0x0a
+0x373f 0x20
+0x3740 0x06
+0x3741 0x04
+0x3742 0x06
+0x3743 0x0a
+0x3744 0x0e
+0x3745 0x0a
+0x3746 0x0e
+0x3747 0x50
+0x3748 0x00
+0x3749 0xf0
+0x374a 0x14
+0x374b 0x34
+0x374d 0x1e
+0x374c 0x00
+0x374e 0x3e
+0x374f 0x0f
+0x3750 0x0f
+0x3751 0x06
+0x3754 0xee
+0x375a 0x08
+0x375b 0x00
+0x375c 0x00
+0x375d 0x00
+0x375e 0x00
+0x3764 0x54
+0x3765 0x46
+0x3768 0x20
+0x376a 0x10
+0x3781 0x38
+0x3798 0x00
+0x37c0 0x08
+0x37c1 0x02
+0x37c2 0x08
+0x37c3 0x04
+0x37c4 0x06
+0x37c5 0x06
+0x37c6 0x06
+0x37c7 0x06
+0x37c8 0x02
+0x37c9 0x04
+0x37ca 0x02
+0x37cb 0x1c
+0x37cc 0x04
+0x37cd 0x02
+0x37ce 0x0a
+0x37cf 0x02
+0x37d0 0x0a
+0x37d1 0x02
+0x37d2 0x0a
+0x37d3 0x02
+0x37d4 0x04
+0x37d5 0x0c
+0x37d6 0x1a
+0x37d7 0x2a
+0x37d8 0x06
+0x37e0 0x1c
+0x37e1 0x04
+0x37e2 0x06
+0x37e4 0x0a
+0x37e5 0x0e
+0x37e6 0x0c
+0x37e7 0x14
+0x37e8 0x06
+0x37e9 0x2e
+0x37eb 0x06
+0x37ec 0x06
+0x37ed 0x0a
+0x37ee 0x02
+0x37f0 0x0a
+0x37f1 0x02
+0x37f2 0x0a
+0x37f3 0x02
+0x37f6 0x1a
+0x37f7 0x02
+0x37d9 0x01
+0x37e3 0x03
+0x37f5 0x20
+0x3800 0x00
+0x3801 0x14
+0x3802 0x00
+0x3803 0x0c
+0x3804 0x10
+0x3805 0x8b
+0x3806 0x0c
+0x3807 0x43
+0x3808 0x10
+0x3809 0x00
+0x380a 0x0c
+0x380b 0x00
+0x380c 0x07
+0x380d 0x08
+0x380e 0x0d
+0x380f 0x06
+0x3810 0x00
+0x3811 0x10
+0x3812 0x00
+0x3813 0x08
+0x3814 0x11
+0x3815 0x11
+0x3820 0x00
+0x3821 0x04
+0x383c 0x88
+0x383d 0xff
+0x3842 0x00
+0x3d85 0x17
+0x3d87 0x6f
+0x3d8c 0x6f
+0x3d8d 0x97
+0x3d90 0x30
+0x4000 0xf8
+0x4010 0x28
+0x4011 0x01
+0x4012 0x0c
+0x4015 0x00
+0x4016 0x1f
+0x4017 0x00
+0x4018 0x1f
+0x401e 0x01
+0x401f 0xa0
+0x4020 0x04
+0x4021 0x00
+0x4022 0x04
+0x4023 0x00
+0x4024 0x04
+0x4025 0x00
+0x4026 0x04
+0x4027 0x00
+0x4056 0x21
+0x401c 0x00
+0x401d 0x00
+0x430f 0x08
+0x430c 0xfc
+0x4500 0x24
+0x4501 0x08
+0x4502 0x00
+0x450a 0x05
+0x4640 0x01
+0x4641 0x04
+0x4642 0x22
+0x4643 0x02
+0x4645 0x03
+0x4809 0x2b
+0x480e 0x02
+0x4813 0x90
+0x481f 0x38
+0x4837 0x08
+0x4b05 0x83
+0x4d00 0x04
+0x4d01 0x30
+0x4d02 0xb7
+0x4d03 0xaf
+0x4d04 0xa9
+0x4d05 0xa7
+0x5000 0xa7
+0x5001 0x04
+0x5044 0x00
+0x5045 0x50
+0x5046 0x10
+0x5047 0x4f
+0x5048 0x00
+0x5049 0x30
+0x504a 0x0c
+0x504b 0x2f
+0x5017 0xfb
+0x5020 0x04
+0x5030 0x00
+0x5031 0x00
+0x5034 0x00
+0x5035 0x00
+0x50c0 0x01
+0x50c1 0x00
+0x55ca 0x07
+0x55cb 0x03
+0x5300 0x01
+0x5360 0x10
+0x5361 0xa0
+0x5362 0x0c
+0x5363 0x60
+0x5364 0x00
+0x5365 0x00
+0x5366 0x00
+0x5367 0x08
+0x5368 0x00
+0x5369 0x50
+0x536a 0x10
+0x536b 0x4f
+0x536c 0x00
+0x536d 0x30
+0x536e 0x0c
+0x536f 0x2f
+0x5370 0x00
+0x5371 0x00
+0x5372 0x00
+0x5373 0x00
+0x5374 0x00
+0x5375 0x00
+0x5376 0x00
+0x5377 0x00
+0x5378 0x20
+0x5379 0x00
+0x537a 0x20
+0x537b 0x00
+0x537c 0x00
+0x537d 0x00
+0x537e 0x00
+0x537f 0x00
+0x5380 0x00
+0x5381 0x00
+0x5382 0x00
+0x5383 0x00
+0x5384 0x00
+0x5385 0x00
+0x5386 0x00
+0x5387 0x00
+0x5388 0x20
+0x5389 0x00
+0x538a 0x20
+0x538b 0x00
+0x538c 0x00
+0x538d 0x00
+0x538e 0x00
+0x538f 0x00
+0x5390 0x00
+0x5391 0x00
+0x5392 0x00
+0x5393 0x00
+0x5394 0x00
+0x5395 0x00
+0x5396 0x00
+0x5397 0x00
+0x5398 0x00
+0x5399 0x20
+0x539a 0x00
+0x539b 0x20
+0x539c 0x00
+0x539d 0x00
+0x539e 0x00
+0x539f 0x00
+0x53a0 0x00
+0x53a1 0x00
+0x53a2 0x00
+0x53a3 0x00
+0x53a4 0x00
+0x53a5 0x00
+0x53a6 0x00
+0x53a7 0x00
+0x53a8 0x00
+0x53a9 0x20
+0x53aa 0x00
+0x53ab 0x20
+0x53ac 0x00
+0x53ad 0x00
+0x53ae 0x00
+0x53af 0x00
+0x53b0 0x00
+0x53b1 0x00
+0x53b2 0x00
+0x53b3 0x00
+0x53b4 0x00
+0x53b5 0x00
+0x53b6 0x00
+0x53b7 0x00
+0x53b8 0x20
+0x53b9 0x00
+0x53ba 0x20
+0x53bb 0x00
+0x53bc 0x00
+0x53bd 0x00
+0x53be 0x00
+0x53bf 0x00
+0x53c0 0x00
+0x53c1 0x00
+0x53c2 0x00
+0x53c3 0x00
+0x53c4 0x00
+0x53c5 0x00
+0x53c6 0x00
+0x53c7 0x00
+0x53c8 0x20
+0x53c9 0x00
+0x53ca 0x20
+0x53cb 0x00
+0x53cc 0x00
+0x53cd 0x00
+0x53ce 0x00
+0x53cf 0x00
+0x53d0 0x00
+0x53d1 0x00
+0x53d2 0x00
+0x53d3 0x00
+0x53d4 0x00
+0x53d5 0x00
+0x53d6 0x00
+0x53d7 0x00
+0x53d8 0x00
+0x53d9 0x20
+0x53da 0x00
+0x53db 0x20
+0x53dc 0x00
+0x53dd 0x00
+0x53de 0x00
+0x53df 0x00
+0x53e0 0x00
+0x53e1 0x00
+0x53e2 0x00
+0x53e3 0x00
+0x53e4 0x00
+0x53e5 0x00
+0x53e6 0x00
+0x53e7 0x00
+0x53e8 0x00
+0x53e9 0x20
+0x53ea 0x00
+0x53eb 0x20
+0x53ec 0x00
+0x53ed 0x00
+0x53ee 0x00
+0x53ef 0x00
+0x53f0 0x00
+0x53f1 0x00
+0x53f2 0x00
+0x53f3 0x00
+0x53f4 0x20
+0x53f5 0x00
+0x53f6 0x20
+0x53f7 0x00
+0x53f8 0x70
+0x53f9 0x00
+0x53fa 0x70
+0x53fb 0x00
+0x53fc 0x20
+0x53fd 0x00
+0x53fe 0x20
+0x53ff 0x00
+0x5400 0x00
+0x5401 0x00
+0x5402 0x00
+0x5403 0x00
+0x5404 0x20
+0x5405 0x00
+0x5406 0x20
+0x5407 0x00
+0x5408 0x70
+0x5409 0x00
+0x540a 0x70
+0x540b 0x00
+0x540c 0x20
+0x540d 0x00
+0x540e 0x20
+0x540f 0x00
+0x5410 0x00
+0x5411 0x00
+0x5412 0x00
+0x5413 0x00
+0x5414 0x00
+0x5415 0x20
+0x5416 0x00
+0x5417 0x20
+0x5418 0x00
+0x5419 0x70
+0x541a 0x00
+0x541b 0x70
+0x541c 0x00
+0x541d 0x20
+0x541e 0x00
+0x541f 0x20
+0x5420 0x00
+0x5421 0x00
+0x5422 0x00
+0x5423 0x00
+0x5424 0x00
+0x5425 0x20
+0x5426 0x00
+0x5427 0x20
+0x5428 0x00
+0x5429 0x70
+0x542a 0x00
+0x542b 0x70
+0x542c 0x00
+0x542d 0x20
+0x542e 0x00
+0x542f 0x20
+0x5430 0x00
+0x5431 0x00
+0x5432 0x00
+0x5433 0x00
+0x5434 0x20
+0x5435 0x00
+0x5436 0x20
+0x5437 0x00
+0x5438 0x70
+0x5439 0x00
+0x543a 0x70
+0x543b 0x00
+0x543c 0x20
+0x543d 0x00
+0x543e 0x20
+0x543f 0x00
+0x5440 0x00
+0x5441 0x00
+0x5442 0x00
+0x5443 0x00
+0x5444 0x20
+0x5445 0x00
+0x5446 0x20
+0x5447 0x00
+0x5448 0x70
+0x5449 0x00
+0x544a 0x70
+0x544b 0x00
+0x544c 0x20
+0x544d 0x00
+0x544e 0x20
+0x544f 0x00
+0x5450 0x00
+0x5451 0x00
+0x5452 0x00
+0x5453 0x00
+0x5454 0x00
+0x5455 0x20
+0x5456 0x00
+0x5457 0x20
+0x5458 0x00
+0x5459 0x70
+0x545a 0x00
+0x545b 0x70
+0x545c 0x00
+0x545d 0x20
+0x545e 0x00
+0x545f 0x20
+0x5460 0x00
+0x5461 0x00
+0x5462 0x00
+0x5463 0x00
+0x5464 0x00
+0x5465 0x20
+0x5466 0x00
+0x5467 0x20
+0x5468 0x00
+0x5469 0x70
+0x546a 0x00
+0x546b 0x70
+0x546c 0x00
+0x546d 0x20
+0x546e 0x00
+0x546f 0x20
+0x5474 0x00
+0x5475 0x18
+0x5476 0x23
+0x5477 0x10
+0x5700 0x01
+0x57b8 0x00
+0x57b9 0x7c
+0x57ba 0x00
+0x57bb 0xa8
+0x57c0 0x00
+0x57c1 0x00
+0x57c2 0x00
+0x57c3 0x08
+0x57c4 0x00
+0x57c5 0x50
+0x57c6 0x10
+0x57c7 0x4f
+0x57c8 0x00
+0x57c9 0x30
+0x57ca 0x0c
+0x57cb 0x2f
+0x57d4 0x00
+0x57d5 0x00
+0x57d6 0x00
+0x57d7 0x00
+0x57d8 0x00
+0x57d9 0x00
+0x57da 0x00
+0x57db 0x00
+0x57dc 0x20
+0x57dd 0x00
+0x57de 0x20
+0x57df 0x00
+0x57e0 0x00
+0x57e1 0x00
+0x57e2 0x00
+0x57e3 0x00
+0x57e4 0x00
+0x57e5 0x00
+0x57e6 0x00
+0x57e7 0x00
+0x57e8 0x00
+0x57e9 0x00
+0x57ea 0x00
+0x57eb 0x00
+0x57ec 0x20
+0x57ed 0x00
+0x57ee 0x20
+0x57ef 0x00
+0x57f0 0x00
+0x57f1 0x00
+0x57f2 0x00
+0x57f3 0x00
+0x57f4 0x00
+0x57f5 0x00
+0x57f6 0x00
+0x57f7 0x00
+0x57f8 0x00
+0x57f9 0x00
+0x57fa 0x00
+0x57fb 0x00
+0x57fc 0x00
+0x57fd 0x20
+0x57fe 0x00
+0x57ff 0x20
+0x5800 0x00
+0x5801 0x00
+0x5802 0x00
+0x5803 0x00
+0x5804 0x00
+0x5805 0x00
+0x5806 0x00
+0x5807 0x00
+0x5808 0x00
+0x5809 0x00
+0x580a 0x00
+0x580b 0x00
+0x580c 0x00
+0x580d 0x20
+0x580e 0x00
+0x580f 0x20
+0x5810 0x00
+0x5811 0x00
+0x5812 0x00
+0x5813 0x00
+0x5814 0x00
+0x5815 0x00
+0x5816 0x00
+0x5817 0x00
+0x5818 0x00
+0x5819 0x00
+0x581a 0x00
+0x581b 0x00
+0x581c 0x20
+0x581d 0x00
+0x581e 0x20
+0x581f 0x00
+0x5820 0x00
+0x5821 0x00
+0x5822 0x00
+0x5823 0x00
+0x5824 0x00
+0x5825 0x00
+0x5826 0x00
+0x5827 0x00
+0x5828 0x00
+0x5829 0x00
+0x582a 0x00
+0x582b 0x00
+0x582c 0x20
+0x582d 0x00
+0x582e 0x20
+0x582f 0x00
+0x5830 0x00
+0x5831 0x00
+0x5832 0x00
+0x5833 0x00
+0x5834 0x00
+0x5835 0x00
+0x5836 0x00
+0x5837 0x00
+0x5838 0x00
+0x5839 0x00
+0x583a 0x00
+0x583b 0x00
+0x583c 0x00
+0x583d 0x20
+0x583e 0x00
+0x583f 0x20
+0x5840 0x00
+0x5841 0x00
+0x5842 0x00
+0x5843 0x00
+0x5844 0x00
+0x5845 0x00
+0x5846 0x00
+0x5847 0x00
+0x5848 0x00
+0x5849 0x00
+0x584a 0x00
+0x584b 0x00
+0x584c 0x00
+0x584d 0x20
+0x584e 0x00
+0x584f 0x20
+0x5850 0x00
+0x5851 0x00
+0x5852 0x00
+0x5853 0x00
+0x5854 0x00
+0x5855 0x00
+0x5856 0x00
+0x5857 0x00
+0x5858 0x00
+0x5859 0x00
+0x585a 0x00
+0x585b 0x00
+0x585c 0x00
+0x585d 0x00
+0x585e 0x00
+0x585f 0x00
+0x5860 0x00
+0x5861 0x00
+0x5862 0x00
+0x5863 0x00
+0x5864 0x08
+0x5865 0x00
+0x5866 0x00
+0x5867 0x00
+0x5868 0x08
+0x5869 0x00
+0x586a 0x00
+0x586b 0x00
+0x586c 0x00
+0x586d 0x00
+0x586e 0x00
+0x586f 0x00
+0x5870 0x00
+0x5871 0x00
+0x5872 0x00
+0x5873 0x00
+0x5874 0x00
+0x5875 0x00
+0x5876 0x00
+0x5877 0x00
+0x5878 0x00
+0x5879 0x00
+0x587a 0x00
+0x587b 0x00
+0x587c 0x00
+0x587d 0x00
+0x587e 0x00
+0x587f 0x00
+0x5880 0x00
+0x5881 0x00
+0x5882 0x00
+0x5883 0x00
+0x5884 0x0c
+0x5885 0x00
+0x5886 0x00
+0x5887 0x00
+0x5888 0x0c
+0x5889 0x00
+0x588a 0x00
+0x588b 0x00
+0x588c 0x00
+0x588d 0x00
+0x588e 0x00
+0x588f 0x00
+0x5890 0x00
+0x5891 0x00
+0x5892 0x00
+0x5893 0x00
+0x5894 0x00
+0x5895 0x00
+0x5896 0x00
+0x5897 0x00
+0x5898 0x00
+0x5899 0x00
+0x589a 0x00
+0x589b 0x00
+0x589c 0x00
+0x589d 0x00
+0x589e 0x00
+0x589f 0x00
+0x58a0 0x00
+0x58a1 0x00
+0x58a2 0x00
+0x58a3 0x00
+0x58a4 0x00
+0x58a5 0x00
+0x58a6 0x0c
+0x58a7 0x00
+0x58a8 0x00
+0x58a9 0x00
+0x58aa 0x0c
+0x58ab 0x00
+0x58ac 0x00
+0x58ad 0x00
+0x58ae 0x00
+0x58af 0x00
+0x58b0 0x00
+0x58b1 0x00
+0x58b2 0x00
+0x58b3 0x00
+0x58b4 0x00
+0x58b5 0x00
+0x58b6 0x00
+0x58b7 0x00
+0x58b8 0x00
+0x58b9 0x00
+0x58ba 0x00
+0x58bb 0x00
+0x58bc 0x00
+0x58bd 0x00
+0x58be 0x00
+0x58bf 0x00
+0x58c0 0x00
+0x58c1 0x00
+0x58c2 0x00
+0x58c3 0x00
+0x58c4 0x00
+0x58c5 0x00
+0x58c6 0x08
+0x58c7 0x00
+0x58c8 0x00
+0x58c9 0x00
+0x58ca 0x08
+0x58cb 0x00
+0x58cc 0x00
+0x58cd 0x00
+0x58ce 0x00
+0x58cf 0x00
+0x58d0 0x00
+0x58d1 0x00
+0x58d2 0x00
+0x58d3 0x00
+0x58d4 0x00
+0x58d5 0x00
+0x58d6 0x00
+0x58d7 0x00
+0x58d8 0x00
+0x58d9 0x00
+0x58da 0x00
+0x58db 0x00
+0x58dc 0x00
+0x58dd 0x00
+0x58de 0x00
+0x58df 0x00
+0x58e0 0x00
+0x58e1 0x00
+0x58e2 0x00
+0x58e3 0x00
+0x58e4 0x08
+0x58e5 0x00
+0x58e6 0x00
+0x58e7 0x00
+0x58e8 0x08
+0x58e9 0x00
+0x58ea 0x00
+0x58eb 0x00
+0x58ec 0x00
+0x58ed 0x00
+0x58ee 0x00
+0x58ef 0x00
+0x58f0 0x00
+0x58f1 0x00
+0x58f2 0x00
+0x58f3 0x00
+0x58f4 0x00
+0x58f5 0x00
+0x58f6 0x00
+0x58f7 0x00
+0x58f8 0x00
+0x58f9 0x00
+0x58fa 0x00
+0x58fb 0x00
+0x58fc 0x00
+0x58fd 0x00
+0x58fe 0x00
+0x58ff 0x00
+0x5900 0x00
+0x5901 0x00
+0x5902 0x00
+0x5903 0x00
+0x5904 0x0c
+0x5905 0x00
+0x5906 0x00
+0x5907 0x00
+0x5908 0x0c
+0x5909 0x00
+0x590a 0x00
+0x590b 0x00
+0x590c 0x00
+0x590d 0x00
+0x590e 0x00
+0x590f 0x00
+0x5910 0x00
+0x5911 0x00
+0x5912 0x00
+0x5913 0x00
+0x5914 0x00
+0x5915 0x00
+0x5916 0x00
+0x5917 0x00
+0x5918 0x00
+0x5919 0x00
+0x591a 0x00
+0x591b 0x00
+0x591c 0x00
+0x591d 0x00
+0x591e 0x00
+0x591f 0x00
+0x5920 0x00
+0x5921 0x00
+0x5922 0x00
+0x5923 0x00
+0x5924 0x00
+0x5925 0x00
+0x5926 0x0c
+0x5927 0x00
+0x5928 0x00
+0x5929 0x00
+0x592a 0x0c
+0x592b 0x00
+0x592c 0x00
+0x592d 0x00
+0x592e 0x00
+0x592f 0x00
+0x5930 0x00
+0x5931 0x00
+0x5932 0x00
+0x5933 0x00
+0x5934 0x00
+0x5935 0x00
+0x5936 0x00
+0x5937 0x00
+0x5938 0x00
+0x5939 0x00
+0x593a 0x00
+0x593b 0x00
+0x593c 0x00
+0x593d 0x00
+0x593e 0x00
+0x593f 0x00
+0x5940 0x00
+0x5941 0x00
+0x5942 0x00
+0x5943 0x00
+0x5944 0x00
+0x5945 0x00
+0x5946 0x08
+0x5947 0x00
+0x5948 0x00
+0x5949 0x00
+0x594a 0x08
+0x594b 0x00
+0x594c 0x00
+0x594d 0x00
+0x594e 0x00
+0x594f 0x00
+0x5950 0x00
+0x5951 0x00
+0x5952 0x00
+0x5953 0x00
+0x5956 0x40
+0x5958 0x00
+0x5959 0x10
+0x595a 0x00
+0x595b 0x10
+0x595c 0x10
+0x595d 0x80
+0x595e 0x0c
+0x595f 0x40
+0x5954 0x04
+0x5a90 0x01
+0x5a10 0x00
+0x5a11 0x00
+0x5a12 0x00
+0x5a13 0x00
+0x5a14 0x00
+0x5a15 0x00
+0x5a16 0x00
+0x5a17 0x00
+0x5a18 0x20
+0x5a19 0x00
+0x5a1a 0x20
+0x5a1b 0x00
+0x5a1c 0x00
+0x5a1d 0x00
+0x5a1e 0x00
+0x5a1f 0x00
+0x5a20 0x00
+0x5a21 0x00
+0x5a22 0x00
+0x5a23 0x00
+0x5a24 0x00
+0x5a25 0x00
+0x5a26 0x00
+0x5a27 0x00
+0x5a28 0x20
+0x5a29 0x00
+0x5a2a 0x20
+0x5a2b 0x00
+0x5a2c 0x00
+0x5a2d 0x00
+0x5a2e 0x00
+0x5a2f 0x00
+0x5a30 0x00
+0x5a31 0x00
+0x5a32 0x00
+0x5a33 0x00
+0x5a34 0x00
+0x5a35 0x00
+0x5a36 0x00
+0x5a37 0x00
+0x5a38 0x00
+0x5a39 0x20
+0x5a3a 0x00
+0x5a3b 0x20
+0x5a3c 0x00
+0x5a3d 0x00
+0x5a3e 0x00
+0x5a3f 0x00
+0x5a40 0x00
+0x5a41 0x00
+0x5a42 0x00
+0x5a43 0x00
+0x5a44 0x00
+0x5a45 0x00
+0x5a46 0x00
+0x5a47 0x00
+0x5a48 0x00
+0x5a49 0x20
+0x5a4a 0x00
+0x5a4b 0x20
+0x5a4c 0x00
+0x5a4d 0x00
+0x5a4e 0x00
+0x5a4f 0x00
+0x5a50 0x00
+0x5a51 0x00
+0x5a52 0x00
+0x5a53 0x00
+0x5a54 0x00
+0x5a55 0x00
+0x5a56 0x00
+0x5a57 0x00
+0x5a58 0x20
+0x5a59 0x00
+0x5a5a 0x20
+0x5a5b 0x00
+0x5a5c 0x00
+0x5a5d 0x00
+0x5a5e 0x00
+0x5a5f 0x00
+0x5a60 0x00
+0x5a61 0x00
+0x5a62 0x00
+0x5a63 0x00
+0x5a64 0x00
+0x5a65 0x00
+0x5a66 0x00
+0x5a67 0x00
+0x5a68 0x20
+0x5a69 0x00
+0x5a6a 0x20
+0x5a6b 0x00
+0x5a6c 0x00
+0x5a6d 0x00
+0x5a6e 0x00
+0x5a6f 0x00
+0x5a70 0x00
+0x5a71 0x00
+0x5a72 0x00
+0x5a73 0x00
+0x5a74 0x00
+0x5a75 0x00
+0x5a76 0x00
+0x5a77 0x00
+0x5a78 0x00
+0x5a79 0x20
+0x5a7a 0x00
+0x5a7b 0x20
+0x5a7c 0x00
+0x5a7d 0x00
+0x5a7e 0x00
+0x5a7f 0x00
+0x5a80 0x00
+0x5a81 0x00
+0x5a82 0x00
+0x5a83 0x00
+0x5a84 0x00
+0x5a85 0x00
+0x5a86 0x00
+0x5a87 0x00
+0x5a88 0x00
+0x5a89 0x20
+0x5a8a 0x00
+0x5a8b 0x20
+0x5a8c 0x00
+0x5a8d 0x00
+0x5a8e 0x00
+0x5a8f 0x00
+0x5280 0x00
+0x5281 0x10
+0x5282 0x0f
+0x5283 0x37
+0x5285 0x07
+0x5500 0xbf
+0x5501 0xf3
+0x5502 0x4d
+0x5503 0x1b
+0x5504 0xe0
+0x5505 0x10
+0x5506 0x3f
+0x5507 0x30
+0x5508 0x04
+0x5509 0x0f
+0x550a 0x43
+0x5e01 0xf3
+0x5e02 0x4d
+0x5e03 0x1b
+0x5e04 0xe0
+0x5e05 0x10
+0x5e06 0x3f
+0x5e07 0x30
+0x5e08 0x04
+0x5e09 0x0f
+0x5e0a 0x43
+0x3025 0x03
+0x3664 0x03
+0x3668 0xf0
+0x3669 0x0e
+0x3406 0x08
+0x3408 0x03
+0x4a00 0x08
+0x0304 0x15
+0x4837 0x0d
+0x401a 0x40
+0x0303 0x00
+0x0317 0x00
+0x031e 0x0a
+0x3016 0x96
+0x3018 0x70
+0x3400 0x04
+0x340c 0x02
+0x340d 0x5e
+0x3501 0x06
+0x3502 0x5e
+0x3600 0x0c
+0x3602 0x0b
+0x3621 0x8f
+0x3622 0x98
+0x366c 0x04
+0x3726 0x21
+0x3808 0x07
+0x3809 0x80
+0x380a 0x04
+0x380b 0x38
+0x380c 0x07
+0x380d 0x08
+0x380e 0x0d
+0x380f 0x04
+0x3811 0x03
+0x3813 0x0c
+0x3814 0x31
+0x3815 0x31
+0x3820 0x00
+0x3821 0x05
+0x3842 0x00
+0x4016 0x0f
+0x4018 0x0f
+0x4837 0x08
+0x5000 0x86
+0x5001 0x00
+0x50c0 0x01
+0x50c1 0x00

+ 1222 - 0
drivers/OV12870/OV12870_mipi4lane_4096X3072_1200_30f_init.txt

@@ -0,0 +1,1222 @@
+0x0300 0xf8
+0x0300 0xf8
+0x0300 0xf8
+0x0300 0xf8
+0x0301 0x24
+0x0302 0x10
+0x0303 0x00
+0x0304 0x25
+0x031a 0x01
+0x0316 0x5a
+0x0317 0x00
+0x0318 0x05
+0x031d 0x0b
+0x0320 0x12
+0x031e 0x09
+0x300d 0x11
+0x3012 0x41
+0x3016 0xb4
+0x3018 0xf0
+0x3019 0xe1
+0x301b 0x16
+0x3023 0xb4
+0x3028 0x0f
+0x3106 0x00
+0x3400 0x00
+0x340c 0x0c
+0x340d 0xce
+0x3501 0x0c
+0x3502 0xe1
+0x3503 0x80
+0x3505 0x80
+0x3507 0x00
+0x3508 0x04
+0x3509 0x00
+0x350a 0x00
+0x350b 0x01
+0x350e 0x00
+0x350f 0x01
+0x350c 0x04
+0x350d 0x00
+0x3511 0x02
+0x3512 0x00
+0x3600 0x00
+0x3602 0x0a
+0x3603 0x00
+0x3608 0xd7
+0x360a 0x70
+0x360b 0x0b
+0x360c 0x3a
+0x360d 0x47
+0x360e 0x02
+0x3611 0x06
+0x3612 0x12
+0x3613 0x22
+0x3618 0x94
+0x3619 0x83
+0x361a 0x24
+0x3621 0x88
+0x3622 0x68
+0x3623 0x58
+0x3624 0x83
+0x3626 0x99
+0x3627 0x60
+0x3628 0x84
+0x3629 0x00
+0x362a 0x05
+0x3632 0x00
+0x3633 0x0a
+0x3634 0x10
+0x3635 0x10
+0x3636 0x10
+0x3652 0xff
+0x3653 0xff
+0x3660 0x40
+0x3661 0x0c
+0x3662 0x40
+0x3663 0x00
+0x3666 0xa5
+0x366a 0x10
+0x366c 0x54
+0x4a00 0x08
+0x3680 0x08
+0x369e 0x00
+0x369f 0x2a
+0x36a0 0x00
+0x36a1 0x64
+0x36a2 0x00
+0x36a3 0x8c
+0x36a4 0x00
+0x36a5 0xbc
+0x36a6 0x00
+0x36a7 0xe0
+0x36a8 0x00
+0x36a9 0xf4
+0x36aa 0x01
+0x36ab 0x04
+0x36ac 0x01
+0x36ad 0x04
+0x36ae 0x01
+0x36af 0x04
+0x3687 0x88
+0x3688 0x88
+0x3689 0x88
+0x368a 0x88
+0x368b 0x08
+0x3700 0x26
+0x3701 0x1c
+0x3702 0x54
+0x3703 0x28
+0x3704 0x24
+0x3705 0x00
+0x3706 0x50
+0x3707 0x08
+0x3708 0x2e
+0x3709 0xce
+0x370a 0x00
+0x370b 0xe4
+0x370c 0x06
+0x370f 0x0a
+0x3710 0x30
+0x3711 0x00
+0x3712 0x40
+0x3714 0x67
+0x3715 0x00
+0x3717 0x02
+0x3718 0x14
+0x3719 0x31
+0x371a 0x1c
+0x371b 0xd2
+0x371c 0x04
+0x371d 0x20
+0x371e 0x13
+0x371f 0x0a
+0x3720 0x03
+0x3722 0x33
+0x3723 0x08
+0x3724 0x34
+0x3725 0x30
+0x3726 0x20
+0x372b 0x00
+0x372d 0x00
+0x3730 0x06
+0x3731 0x06
+0x3732 0x06
+0x3733 0x06
+0x3734 0x06
+0x3735 0x06
+0x3736 0x0a
+0x3737 0x02
+0x3738 0x0a
+0x3739 0x02
+0x373a 0x0a
+0x373b 0x28
+0x373c 0x0a
+0x373d 0x2a
+0x373e 0x0a
+0x373f 0x20
+0x3740 0x06
+0x3741 0x04
+0x3742 0x06
+0x3743 0x0a
+0x3744 0x0e
+0x3745 0x0a
+0x3746 0x0e
+0x3747 0x50
+0x3748 0x00
+0x3749 0xf0
+0x374a 0x14
+0x374b 0x34
+0x374d 0x1e
+0x374c 0x00
+0x374e 0x3e
+0x374f 0x0f
+0x3750 0x0f
+0x3751 0x06
+0x3754 0xee
+0x375a 0x08
+0x375b 0x00
+0x375c 0x00
+0x375d 0x00
+0x375e 0x00
+0x3764 0x54
+0x3765 0x46
+0x3768 0x20
+0x376a 0x10
+0x3781 0x38
+0x3798 0x00
+0x37c0 0x08
+0x37c1 0x02
+0x37c2 0x08
+0x37c3 0x04
+0x37c4 0x06
+0x37c5 0x06
+0x37c6 0x06
+0x37c7 0x06
+0x37c8 0x02
+0x37c9 0x04
+0x37ca 0x02
+0x37cb 0x1c
+0x37cc 0x04
+0x37cd 0x02
+0x37ce 0x0a
+0x37cf 0x02
+0x37d0 0x0a
+0x37d1 0x02
+0x37d2 0x0a
+0x37d3 0x02
+0x37d4 0x04
+0x37d5 0x0c
+0x37d6 0x1a
+0x37d7 0x2a
+0x37d8 0x06
+0x37e0 0x1c
+0x37e1 0x04
+0x37e2 0x06
+0x37e4 0x0a
+0x37e5 0x0e
+0x37e6 0x0c
+0x37e7 0x14
+0x37e8 0x06
+0x37e9 0x2e
+0x37eb 0x06
+0x37ec 0x06
+0x37ed 0x0a
+0x37ee 0x02
+0x37f0 0x0a
+0x37f1 0x02
+0x37f2 0x0a
+0x37f3 0x02
+0x37f6 0x1a
+0x37f7 0x02
+0x37d9 0x01
+0x37e3 0x03
+0x37f5 0x20
+0x3800 0x00
+0x3801 0x14
+0x3802 0x00
+0x3803 0x0c
+0x3804 0x10
+0x3805 0x8b
+0x3806 0x0c
+0x3807 0x43
+0x3808 0x10
+0x3809 0x00
+0x380a 0x0c
+0x380b 0x00
+0x380c 0x07
+0x380d 0x08
+0x380e 0x0d
+0x380f 0x06
+0x3810 0x00
+0x3811 0x10
+0x3812 0x00
+0x3813 0x08
+0x3814 0x11
+0x3815 0x11
+0x3820 0x00
+0x3821 0x04
+0x383c 0x88
+0x383d 0xff
+0x3842 0x00
+0x3d85 0x17
+0x3d87 0x6f
+0x3d8c 0x6f
+0x3d8d 0x97
+0x3d90 0x30
+0x4000 0xf8
+0x4010 0x28
+0x4011 0x01
+0x4012 0x0c
+0x4015 0x00
+0x4016 0x1f
+0x4017 0x00
+0x4018 0x1f
+0x401e 0x01
+0x401f 0xa0
+0x4020 0x04
+0x4021 0x00
+0x4022 0x04
+0x4023 0x00
+0x4024 0x04
+0x4025 0x00
+0x4026 0x04
+0x4027 0x00
+0x4056 0x21
+0x401c 0x00
+0x401d 0x00
+0x430f 0x08
+0x430c 0xfc
+0x4500 0x24
+0x4501 0x08
+0x4502 0x00
+0x450a 0x05
+0x4640 0x01
+0x4641 0x04
+0x4642 0x22
+0x4643 0x02
+0x4645 0x03
+0x4809 0x2b
+0x480e 0x02
+0x4813 0x90
+0x481f 0x38
+0x4837 0x08
+0x4b05 0x83
+0x4d00 0x04
+0x4d01 0x30
+0x4d02 0xb7
+0x4d03 0xaf
+0x4d04 0xa9
+0x4d05 0xa7
+0x5000 0xa7
+0x5001 0x04
+0x5044 0x00
+0x5045 0x50
+0x5046 0x10
+0x5047 0x4f
+0x5048 0x00
+0x5049 0x30
+0x504a 0x0c
+0x504b 0x2f
+0x5017 0xfb
+0x5020 0x04
+0x5030 0x00
+0x5031 0x00
+0x5034 0x00
+0x5035 0x00
+0x50c0 0x01
+0x50c1 0x00
+0x55ca 0x07
+0x55cb 0x03
+0x5300 0x01
+0x5360 0x10
+0x5361 0xa0
+0x5362 0x0c
+0x5363 0x60
+0x5364 0x00
+0x5365 0x00
+0x5366 0x00
+0x5367 0x08
+0x5368 0x00
+0x5369 0x50
+0x536a 0x10
+0x536b 0x4f
+0x536c 0x00
+0x536d 0x30
+0x536e 0x0c
+0x536f 0x2f
+0x5370 0x00
+0x5371 0x00
+0x5372 0x00
+0x5373 0x00
+0x5374 0x00
+0x5375 0x00
+0x5376 0x00
+0x5377 0x00
+0x5378 0x20
+0x5379 0x00
+0x537a 0x20
+0x537b 0x00
+0x537c 0x00
+0x537d 0x00
+0x537e 0x00
+0x537f 0x00
+0x5380 0x00
+0x5381 0x00
+0x5382 0x00
+0x5383 0x00
+0x5384 0x00
+0x5385 0x00
+0x5386 0x00
+0x5387 0x00
+0x5388 0x20
+0x5389 0x00
+0x538a 0x20
+0x538b 0x00
+0x538c 0x00
+0x538d 0x00
+0x538e 0x00
+0x538f 0x00
+0x5390 0x00
+0x5391 0x00
+0x5392 0x00
+0x5393 0x00
+0x5394 0x00
+0x5395 0x00
+0x5396 0x00
+0x5397 0x00
+0x5398 0x00
+0x5399 0x20
+0x539a 0x00
+0x539b 0x20
+0x539c 0x00
+0x539d 0x00
+0x539e 0x00
+0x539f 0x00
+0x53a0 0x00
+0x53a1 0x00
+0x53a2 0x00
+0x53a3 0x00
+0x53a4 0x00
+0x53a5 0x00
+0x53a6 0x00
+0x53a7 0x00
+0x53a8 0x00
+0x53a9 0x20
+0x53aa 0x00
+0x53ab 0x20
+0x53ac 0x00
+0x53ad 0x00
+0x53ae 0x00
+0x53af 0x00
+0x53b0 0x00
+0x53b1 0x00
+0x53b2 0x00
+0x53b3 0x00
+0x53b4 0x00
+0x53b5 0x00
+0x53b6 0x00
+0x53b7 0x00
+0x53b8 0x20
+0x53b9 0x00
+0x53ba 0x20
+0x53bb 0x00
+0x53bc 0x00
+0x53bd 0x00
+0x53be 0x00
+0x53bf 0x00
+0x53c0 0x00
+0x53c1 0x00
+0x53c2 0x00
+0x53c3 0x00
+0x53c4 0x00
+0x53c5 0x00
+0x53c6 0x00
+0x53c7 0x00
+0x53c8 0x20
+0x53c9 0x00
+0x53ca 0x20
+0x53cb 0x00
+0x53cc 0x00
+0x53cd 0x00
+0x53ce 0x00
+0x53cf 0x00
+0x53d0 0x00
+0x53d1 0x00
+0x53d2 0x00
+0x53d3 0x00
+0x53d4 0x00
+0x53d5 0x00
+0x53d6 0x00
+0x53d7 0x00
+0x53d8 0x00
+0x53d9 0x20
+0x53da 0x00
+0x53db 0x20
+0x53dc 0x00
+0x53dd 0x00
+0x53de 0x00
+0x53df 0x00
+0x53e0 0x00
+0x53e1 0x00
+0x53e2 0x00
+0x53e3 0x00
+0x53e4 0x00
+0x53e5 0x00
+0x53e6 0x00
+0x53e7 0x00
+0x53e8 0x00
+0x53e9 0x20
+0x53ea 0x00
+0x53eb 0x20
+0x53ec 0x00
+0x53ed 0x00
+0x53ee 0x00
+0x53ef 0x00
+0x53f0 0x00
+0x53f1 0x00
+0x53f2 0x00
+0x53f3 0x00
+0x53f4 0x20
+0x53f5 0x00
+0x53f6 0x20
+0x53f7 0x00
+0x53f8 0x70
+0x53f9 0x00
+0x53fa 0x70
+0x53fb 0x00
+0x53fc 0x20
+0x53fd 0x00
+0x53fe 0x20
+0x53ff 0x00
+0x5400 0x00
+0x5401 0x00
+0x5402 0x00
+0x5403 0x00
+0x5404 0x20
+0x5405 0x00
+0x5406 0x20
+0x5407 0x00
+0x5408 0x70
+0x5409 0x00
+0x540a 0x70
+0x540b 0x00
+0x540c 0x20
+0x540d 0x00
+0x540e 0x20
+0x540f 0x00
+0x5410 0x00
+0x5411 0x00
+0x5412 0x00
+0x5413 0x00
+0x5414 0x00
+0x5415 0x20
+0x5416 0x00
+0x5417 0x20
+0x5418 0x00
+0x5419 0x70
+0x541a 0x00
+0x541b 0x70
+0x541c 0x00
+0x541d 0x20
+0x541e 0x00
+0x541f 0x20
+0x5420 0x00
+0x5421 0x00
+0x5422 0x00
+0x5423 0x00
+0x5424 0x00
+0x5425 0x20
+0x5426 0x00
+0x5427 0x20
+0x5428 0x00
+0x5429 0x70
+0x542a 0x00
+0x542b 0x70
+0x542c 0x00
+0x542d 0x20
+0x542e 0x00
+0x542f 0x20
+0x5430 0x00
+0x5431 0x00
+0x5432 0x00
+0x5433 0x00
+0x5434 0x20
+0x5435 0x00
+0x5436 0x20
+0x5437 0x00
+0x5438 0x70
+0x5439 0x00
+0x543a 0x70
+0x543b 0x00
+0x543c 0x20
+0x543d 0x00
+0x543e 0x20
+0x543f 0x00
+0x5440 0x00
+0x5441 0x00
+0x5442 0x00
+0x5443 0x00
+0x5444 0x20
+0x5445 0x00
+0x5446 0x20
+0x5447 0x00
+0x5448 0x70
+0x5449 0x00
+0x544a 0x70
+0x544b 0x00
+0x544c 0x20
+0x544d 0x00
+0x544e 0x20
+0x544f 0x00
+0x5450 0x00
+0x5451 0x00
+0x5452 0x00
+0x5453 0x00
+0x5454 0x00
+0x5455 0x20
+0x5456 0x00
+0x5457 0x20
+0x5458 0x00
+0x5459 0x70
+0x545a 0x00
+0x545b 0x70
+0x545c 0x00
+0x545d 0x20
+0x545e 0x00
+0x545f 0x20
+0x5460 0x00
+0x5461 0x00
+0x5462 0x00
+0x5463 0x00
+0x5464 0x00
+0x5465 0x20
+0x5466 0x00
+0x5467 0x20
+0x5468 0x00
+0x5469 0x70
+0x546a 0x00
+0x546b 0x70
+0x546c 0x00
+0x546d 0x20
+0x546e 0x00
+0x546f 0x20
+0x5474 0x00
+0x5475 0x18
+0x5476 0x23
+0x5477 0x10
+0x5700 0x01
+0x57b8 0x00
+0x57b9 0x7c
+0x57ba 0x00
+0x57bb 0xa8
+0x57c0 0x00
+0x57c1 0x00
+0x57c2 0x00
+0x57c3 0x08
+0x57c4 0x00
+0x57c5 0x50
+0x57c6 0x10
+0x57c7 0x4f
+0x57c8 0x00
+0x57c9 0x30
+0x57ca 0x0c
+0x57cb 0x2f
+0x57d4 0x00
+0x57d5 0x00
+0x57d6 0x00
+0x57d7 0x00
+0x57d8 0x00
+0x57d9 0x00
+0x57da 0x00
+0x57db 0x00
+0x57dc 0x20
+0x57dd 0x00
+0x57de 0x20
+0x57df 0x00
+0x57e0 0x00
+0x57e1 0x00
+0x57e2 0x00
+0x57e3 0x00
+0x57e4 0x00
+0x57e5 0x00
+0x57e6 0x00
+0x57e7 0x00
+0x57e8 0x00
+0x57e9 0x00
+0x57ea 0x00
+0x57eb 0x00
+0x57ec 0x20
+0x57ed 0x00
+0x57ee 0x20
+0x57ef 0x00
+0x57f0 0x00
+0x57f1 0x00
+0x57f2 0x00
+0x57f3 0x00
+0x57f4 0x00
+0x57f5 0x00
+0x57f6 0x00
+0x57f7 0x00
+0x57f8 0x00
+0x57f9 0x00
+0x57fa 0x00
+0x57fb 0x00
+0x57fc 0x00
+0x57fd 0x20
+0x57fe 0x00
+0x57ff 0x20
+0x5800 0x00
+0x5801 0x00
+0x5802 0x00
+0x5803 0x00
+0x5804 0x00
+0x5805 0x00
+0x5806 0x00
+0x5807 0x00
+0x5808 0x00
+0x5809 0x00
+0x580a 0x00
+0x580b 0x00
+0x580c 0x00
+0x580d 0x20
+0x580e 0x00
+0x580f 0x20
+0x5810 0x00
+0x5811 0x00
+0x5812 0x00
+0x5813 0x00
+0x5814 0x00
+0x5815 0x00
+0x5816 0x00
+0x5817 0x00
+0x5818 0x00
+0x5819 0x00
+0x581a 0x00
+0x581b 0x00
+0x581c 0x20
+0x581d 0x00
+0x581e 0x20
+0x581f 0x00
+0x5820 0x00
+0x5821 0x00
+0x5822 0x00
+0x5823 0x00
+0x5824 0x00
+0x5825 0x00
+0x5826 0x00
+0x5827 0x00
+0x5828 0x00
+0x5829 0x00
+0x582a 0x00
+0x582b 0x00
+0x582c 0x20
+0x582d 0x00
+0x582e 0x20
+0x582f 0x00
+0x5830 0x00
+0x5831 0x00
+0x5832 0x00
+0x5833 0x00
+0x5834 0x00
+0x5835 0x00
+0x5836 0x00
+0x5837 0x00
+0x5838 0x00
+0x5839 0x00
+0x583a 0x00
+0x583b 0x00
+0x583c 0x00
+0x583d 0x20
+0x583e 0x00
+0x583f 0x20
+0x5840 0x00
+0x5841 0x00
+0x5842 0x00
+0x5843 0x00
+0x5844 0x00
+0x5845 0x00
+0x5846 0x00
+0x5847 0x00
+0x5848 0x00
+0x5849 0x00
+0x584a 0x00
+0x584b 0x00
+0x584c 0x00
+0x584d 0x20
+0x584e 0x00
+0x584f 0x20
+0x5850 0x00
+0x5851 0x00
+0x5852 0x00
+0x5853 0x00
+0x5854 0x00
+0x5855 0x00
+0x5856 0x00
+0x5857 0x00
+0x5858 0x00
+0x5859 0x00
+0x585a 0x00
+0x585b 0x00
+0x585c 0x00
+0x585d 0x00
+0x585e 0x00
+0x585f 0x00
+0x5860 0x00
+0x5861 0x00
+0x5862 0x00
+0x5863 0x00
+0x5864 0x08
+0x5865 0x00
+0x5866 0x00
+0x5867 0x00
+0x5868 0x08
+0x5869 0x00
+0x586a 0x00
+0x586b 0x00
+0x586c 0x00
+0x586d 0x00
+0x586e 0x00
+0x586f 0x00
+0x5870 0x00
+0x5871 0x00
+0x5872 0x00
+0x5873 0x00
+0x5874 0x00
+0x5875 0x00
+0x5876 0x00
+0x5877 0x00
+0x5878 0x00
+0x5879 0x00
+0x587a 0x00
+0x587b 0x00
+0x587c 0x00
+0x587d 0x00
+0x587e 0x00
+0x587f 0x00
+0x5880 0x00
+0x5881 0x00
+0x5882 0x00
+0x5883 0x00
+0x5884 0x0c
+0x5885 0x00
+0x5886 0x00
+0x5887 0x00
+0x5888 0x0c
+0x5889 0x00
+0x588a 0x00
+0x588b 0x00
+0x588c 0x00
+0x588d 0x00
+0x588e 0x00
+0x588f 0x00
+0x5890 0x00
+0x5891 0x00
+0x5892 0x00
+0x5893 0x00
+0x5894 0x00
+0x5895 0x00
+0x5896 0x00
+0x5897 0x00
+0x5898 0x00
+0x5899 0x00
+0x589a 0x00
+0x589b 0x00
+0x589c 0x00
+0x589d 0x00
+0x589e 0x00
+0x589f 0x00
+0x58a0 0x00
+0x58a1 0x00
+0x58a2 0x00
+0x58a3 0x00
+0x58a4 0x00
+0x58a5 0x00
+0x58a6 0x0c
+0x58a7 0x00
+0x58a8 0x00
+0x58a9 0x00
+0x58aa 0x0c
+0x58ab 0x00
+0x58ac 0x00
+0x58ad 0x00
+0x58ae 0x00
+0x58af 0x00
+0x58b0 0x00
+0x58b1 0x00
+0x58b2 0x00
+0x58b3 0x00
+0x58b4 0x00
+0x58b5 0x00
+0x58b6 0x00
+0x58b7 0x00
+0x58b8 0x00
+0x58b9 0x00
+0x58ba 0x00
+0x58bb 0x00
+0x58bc 0x00
+0x58bd 0x00
+0x58be 0x00
+0x58bf 0x00
+0x58c0 0x00
+0x58c1 0x00
+0x58c2 0x00
+0x58c3 0x00
+0x58c4 0x00
+0x58c5 0x00
+0x58c6 0x08
+0x58c7 0x00
+0x58c8 0x00
+0x58c9 0x00
+0x58ca 0x08
+0x58cb 0x00
+0x58cc 0x00
+0x58cd 0x00
+0x58ce 0x00
+0x58cf 0x00
+0x58d0 0x00
+0x58d1 0x00
+0x58d2 0x00
+0x58d3 0x00
+0x58d4 0x00
+0x58d5 0x00
+0x58d6 0x00
+0x58d7 0x00
+0x58d8 0x00
+0x58d9 0x00
+0x58da 0x00
+0x58db 0x00
+0x58dc 0x00
+0x58dd 0x00
+0x58de 0x00
+0x58df 0x00
+0x58e0 0x00
+0x58e1 0x00
+0x58e2 0x00
+0x58e3 0x00
+0x58e4 0x08
+0x58e5 0x00
+0x58e6 0x00
+0x58e7 0x00
+0x58e8 0x08
+0x58e9 0x00
+0x58ea 0x00
+0x58eb 0x00
+0x58ec 0x00
+0x58ed 0x00
+0x58ee 0x00
+0x58ef 0x00
+0x58f0 0x00
+0x58f1 0x00
+0x58f2 0x00
+0x58f3 0x00
+0x58f4 0x00
+0x58f5 0x00
+0x58f6 0x00
+0x58f7 0x00
+0x58f8 0x00
+0x58f9 0x00
+0x58fa 0x00
+0x58fb 0x00
+0x58fc 0x00
+0x58fd 0x00
+0x58fe 0x00
+0x58ff 0x00
+0x5900 0x00
+0x5901 0x00
+0x5902 0x00
+0x5903 0x00
+0x5904 0x0c
+0x5905 0x00
+0x5906 0x00
+0x5907 0x00
+0x5908 0x0c
+0x5909 0x00
+0x590a 0x00
+0x590b 0x00
+0x590c 0x00
+0x590d 0x00
+0x590e 0x00
+0x590f 0x00
+0x5910 0x00
+0x5911 0x00
+0x5912 0x00
+0x5913 0x00
+0x5914 0x00
+0x5915 0x00
+0x5916 0x00
+0x5917 0x00
+0x5918 0x00
+0x5919 0x00
+0x591a 0x00
+0x591b 0x00
+0x591c 0x00
+0x591d 0x00
+0x591e 0x00
+0x591f 0x00
+0x5920 0x00
+0x5921 0x00
+0x5922 0x00
+0x5923 0x00
+0x5924 0x00
+0x5925 0x00
+0x5926 0x0c
+0x5927 0x00
+0x5928 0x00
+0x5929 0x00
+0x592a 0x0c
+0x592b 0x00
+0x592c 0x00
+0x592d 0x00
+0x592e 0x00
+0x592f 0x00
+0x5930 0x00
+0x5931 0x00
+0x5932 0x00
+0x5933 0x00
+0x5934 0x00
+0x5935 0x00
+0x5936 0x00
+0x5937 0x00
+0x5938 0x00
+0x5939 0x00
+0x593a 0x00
+0x593b 0x00
+0x593c 0x00
+0x593d 0x00
+0x593e 0x00
+0x593f 0x00
+0x5940 0x00
+0x5941 0x00
+0x5942 0x00
+0x5943 0x00
+0x5944 0x00
+0x5945 0x00
+0x5946 0x08
+0x5947 0x00
+0x5948 0x00
+0x5949 0x00
+0x594a 0x08
+0x594b 0x00
+0x594c 0x00
+0x594d 0x00
+0x594e 0x00
+0x594f 0x00
+0x5950 0x00
+0x5951 0x00
+0x5952 0x00
+0x5953 0x00
+0x5956 0x40
+0x5958 0x00
+0x5959 0x10
+0x595a 0x00
+0x595b 0x10
+0x595c 0x10
+0x595d 0x80
+0x595e 0x0c
+0x595f 0x40
+0x5954 0x04
+0x5a90 0x01
+0x5a10 0x00
+0x5a11 0x00
+0x5a12 0x00
+0x5a13 0x00
+0x5a14 0x00
+0x5a15 0x00
+0x5a16 0x00
+0x5a17 0x00
+0x5a18 0x20
+0x5a19 0x00
+0x5a1a 0x20
+0x5a1b 0x00
+0x5a1c 0x00
+0x5a1d 0x00
+0x5a1e 0x00
+0x5a1f 0x00
+0x5a20 0x00
+0x5a21 0x00
+0x5a22 0x00
+0x5a23 0x00
+0x5a24 0x00
+0x5a25 0x00
+0x5a26 0x00
+0x5a27 0x00
+0x5a28 0x20
+0x5a29 0x00
+0x5a2a 0x20
+0x5a2b 0x00
+0x5a2c 0x00
+0x5a2d 0x00
+0x5a2e 0x00
+0x5a2f 0x00
+0x5a30 0x00
+0x5a31 0x00
+0x5a32 0x00
+0x5a33 0x00
+0x5a34 0x00
+0x5a35 0x00
+0x5a36 0x00
+0x5a37 0x00
+0x5a38 0x00
+0x5a39 0x20
+0x5a3a 0x00
+0x5a3b 0x20
+0x5a3c 0x00
+0x5a3d 0x00
+0x5a3e 0x00
+0x5a3f 0x00
+0x5a40 0x00
+0x5a41 0x00
+0x5a42 0x00
+0x5a43 0x00
+0x5a44 0x00
+0x5a45 0x00
+0x5a46 0x00
+0x5a47 0x00
+0x5a48 0x00
+0x5a49 0x20
+0x5a4a 0x00
+0x5a4b 0x20
+0x5a4c 0x00
+0x5a4d 0x00
+0x5a4e 0x00
+0x5a4f 0x00
+0x5a50 0x00
+0x5a51 0x00
+0x5a52 0x00
+0x5a53 0x00
+0x5a54 0x00
+0x5a55 0x00
+0x5a56 0x00
+0x5a57 0x00
+0x5a58 0x20
+0x5a59 0x00
+0x5a5a 0x20
+0x5a5b 0x00
+0x5a5c 0x00
+0x5a5d 0x00
+0x5a5e 0x00
+0x5a5f 0x00
+0x5a60 0x00
+0x5a61 0x00
+0x5a62 0x00
+0x5a63 0x00
+0x5a64 0x00
+0x5a65 0x00
+0x5a66 0x00
+0x5a67 0x00
+0x5a68 0x20
+0x5a69 0x00
+0x5a6a 0x20
+0x5a6b 0x00
+0x5a6c 0x00
+0x5a6d 0x00
+0x5a6e 0x00
+0x5a6f 0x00
+0x5a70 0x00
+0x5a71 0x00
+0x5a72 0x00
+0x5a73 0x00
+0x5a74 0x00
+0x5a75 0x00
+0x5a76 0x00
+0x5a77 0x00
+0x5a78 0x00
+0x5a79 0x20
+0x5a7a 0x00
+0x5a7b 0x20
+0x5a7c 0x00
+0x5a7d 0x00
+0x5a7e 0x00
+0x5a7f 0x00
+0x5a80 0x00
+0x5a81 0x00
+0x5a82 0x00
+0x5a83 0x00
+0x5a84 0x00
+0x5a85 0x00
+0x5a86 0x00
+0x5a87 0x00
+0x5a88 0x00
+0x5a89 0x20
+0x5a8a 0x00
+0x5a8b 0x20
+0x5a8c 0x00
+0x5a8d 0x00
+0x5a8e 0x00
+0x5a8f 0x00
+0x5280 0x00
+0x5281 0x10
+0x5282 0x0f
+0x5283 0x37
+0x5285 0x07
+0x5500 0xbf
+0x5501 0xf3
+0x5502 0x4d
+0x5503 0x1b
+0x5504 0xe0
+0x5505 0x10
+0x5506 0x3f
+0x5507 0x30
+0x5508 0x04
+0x5509 0x0f
+0x550a 0x43
+0x5e01 0xf3
+0x5e02 0x4d
+0x5e03 0x1b
+0x5e04 0xe0
+0x5e05 0x10
+0x5e06 0x3f
+0x5e07 0x30
+0x5e08 0x04
+0x5e09 0x0f
+0x5e0a 0x43
+0x3025 0x03
+0x3664 0x03
+0x3668 0xf0
+0x3669 0x0e
+0x3406 0x08
+0x3408 0x03
+0x4a00 0x08
+0x0304 0x15
+0x4837 0x0d
+0x401a 0x40
+0x0303 0x00
+0x0317 0x00
+0x031e 0x09
+0x3016 0xb4
+0x3018 0xf0
+0x3400 0x00
+0x340c 0x0c
+0x340d 0xce
+0x3501 0x0c
+0x3502 0xe1
+0x3600 0x00
+0x3602 0x0a
+0x3621 0x88
+0x3622 0x68
+0x366c 0x54
+0x3726 0x20
+0x3808 0x10
+0x3809 0x00
+0x380a 0x0c
+0x380b 0x00
+0x380c 0x07
+0x380d 0x08
+0x380e 0x0d
+0x380f 0x06
+0x3811 0x10
+0x3813 0x08
+0x3814 0x11
+0x3815 0x11
+0x3820 0x00
+0x3821 0x04
+0x3842 0x00
+0x4016 0x1f
+0x4018 0x1f
+0x4837 0x08
+0x5000 0xa7
+0x5001 0x04
+0x50c0 0x01
+0x50c1 0x00
+0x4802 0x02

+ 1226 - 0
drivers/OV12870/OV12870_mipi4lane_640x480_init.txt

@@ -0,0 +1,1226 @@
+0x0300 0xf8
+0x0300 0xf8
+0x0300 0xf8
+0x0300 0xf8
+0x0301 0x24
+0x0302 0x10
+0x0303 0x00
+0x0304 0x25
+0x031a 0x01
+0x0316 0x5a
+0x0317 0x00
+0x0318 0x05
+0x031d 0x0b
+0x0320 0x12
+0x031e 0x09
+0x300d 0x11
+0x3012 0x41
+0x3016 0xb4
+0x3018 0xf0
+0x3019 0xe1
+0x301b 0x16
+0x3023 0xb4
+0x3028 0x0f
+0x3106 0x00
+0x3400 0x00
+0x340c 0x0c
+0x340d 0xce
+0x3501 0x0c
+0x3502 0xe1
+0x3503 0x80
+0x3505 0x80
+0x3507 0x00
+0x3508 0x04
+0x3509 0x00
+0x350a 0x00
+0x350b 0x01
+0x350e 0x00
+0x350f 0x01
+0x350c 0x04
+0x350d 0x00
+0x3511 0x02
+0x3512 0x00
+0x3600 0x00
+0x3602 0x0a
+0x3603 0x00
+0x3608 0xd7
+0x360a 0x70
+0x360b 0x0b
+0x360c 0x3a
+0x360d 0x47
+0x360e 0x02
+0x3611 0x06
+0x3612 0x12
+0x3613 0x22
+0x3618 0x94
+0x3619 0x83
+0x361a 0x24
+0x3621 0x88
+0x3622 0x68
+0x3623 0x58
+0x3624 0x83
+0x3626 0x99
+0x3627 0x60
+0x3628 0x84
+0x3629 0x00
+0x362a 0x05
+0x3632 0x00
+0x3633 0x0a
+0x3634 0x10
+0x3635 0x10
+0x3636 0x10
+0x3652 0xff
+0x3653 0xff
+0x3660 0x40
+0x3661 0x0c
+0x3662 0x40
+0x3663 0x00
+0x3666 0xa5
+0x366a 0x10
+0x366c 0x54
+0x4a00 0x08
+0x3680 0x08
+0x369e 0x00
+0x369f 0x2a
+0x36a0 0x00
+0x36a1 0x64
+0x36a2 0x00
+0x36a3 0x8c
+0x36a4 0x00
+0x36a5 0xbc
+0x36a6 0x00
+0x36a7 0xe0
+0x36a8 0x00
+0x36a9 0xf4
+0x36aa 0x01
+0x36ab 0x04
+0x36ac 0x01
+0x36ad 0x04
+0x36ae 0x01
+0x36af 0x04
+0x3687 0x88
+0x3688 0x88
+0x3689 0x88
+0x368a 0x88
+0x368b 0x08
+0x3700 0x26
+0x3701 0x1c
+0x3702 0x54
+0x3703 0x28
+0x3704 0x24
+0x3705 0x00
+0x3706 0x50
+0x3707 0x08
+0x3708 0x2e
+0x3709 0xce
+0x370a 0x00
+0x370b 0xe4
+0x370c 0x06
+0x370f 0x0a
+0x3710 0x30
+0x3711 0x00
+0x3712 0x40
+0x3714 0x67
+0x3715 0x00
+0x3717 0x02
+0x3718 0x14
+0x3719 0x31
+0x371a 0x1c
+0x371b 0xd2
+0x371c 0x04
+0x371d 0x20
+0x371e 0x13
+0x371f 0x0a
+0x3720 0x03
+0x3722 0x33
+0x3723 0x08
+0x3724 0x34
+0x3725 0x30
+0x3726 0x20
+0x372b 0x00
+0x372d 0x00
+0x3730 0x06
+0x3731 0x06
+0x3732 0x06
+0x3733 0x06
+0x3734 0x06
+0x3735 0x06
+0x3736 0x0a
+0x3737 0x02
+0x3738 0x0a
+0x3739 0x02
+0x373a 0x0a
+0x373b 0x28
+0x373c 0x0a
+0x373d 0x2a
+0x373e 0x0a
+0x373f 0x20
+0x3740 0x06
+0x3741 0x04
+0x3742 0x06
+0x3743 0x0a
+0x3744 0x0e
+0x3745 0x0a
+0x3746 0x0e
+0x3747 0x50
+0x3748 0x00
+0x3749 0xf0
+0x374a 0x14
+0x374b 0x34
+0x374d 0x1e
+0x374c 0x00
+0x374e 0x3e
+0x374f 0x0f
+0x3750 0x0f
+0x3751 0x06
+0x3754 0xee
+0x375a 0x08
+0x375b 0x00
+0x375c 0x00
+0x375d 0x00
+0x375e 0x00
+0x3764 0x54
+0x3765 0x46
+0x3768 0x20
+0x376a 0x10
+0x3781 0x38
+0x3798 0x00
+0x37c0 0x08
+0x37c1 0x02
+0x37c2 0x08
+0x37c3 0x04
+0x37c4 0x06
+0x37c5 0x06
+0x37c6 0x06
+0x37c7 0x06
+0x37c8 0x02
+0x37c9 0x04
+0x37ca 0x02
+0x37cb 0x1c
+0x37cc 0x04
+0x37cd 0x02
+0x37ce 0x0a
+0x37cf 0x02
+0x37d0 0x0a
+0x37d1 0x02
+0x37d2 0x0a
+0x37d3 0x02
+0x37d4 0x04
+0x37d5 0x0c
+0x37d6 0x1a
+0x37d7 0x2a
+0x37d8 0x06
+0x37e0 0x1c
+0x37e1 0x04
+0x37e2 0x06
+0x37e4 0x0a
+0x37e5 0x0e
+0x37e6 0x0c
+0x37e7 0x14
+0x37e8 0x06
+0x37e9 0x2e
+0x37eb 0x06
+0x37ec 0x06
+0x37ed 0x0a
+0x37ee 0x02
+0x37f0 0x0a
+0x37f1 0x02
+0x37f2 0x0a
+0x37f3 0x02
+0x37f6 0x1a
+0x37f7 0x02
+0x37d9 0x01
+0x37e3 0x03
+0x37f5 0x20
+0x3800 0x00
+0x3801 0x14
+0x3802 0x00
+0x3803 0x0c
+0x3804 0x10
+0x3805 0x8b
+0x3806 0x0c
+0x3807 0x43
+0x3808 0x10
+0x3809 0x00
+0x380a 0x0c
+0x380b 0x00
+0x380c 0x07
+0x380d 0x08
+0x380e 0x0d
+0x380f 0x06
+0x3810 0x00
+0x3811 0x10
+0x3812 0x00
+0x3813 0x08
+0x3814 0x11
+0x3815 0x11
+0x3820 0x00
+0x3821 0x04
+0x383c 0x88
+0x383d 0xff
+0x3842 0x00
+0x3d85 0x17
+0x3d87 0x6f
+0x3d8c 0x6f
+0x3d8d 0x97
+0x3d90 0x30
+0x4000 0xf8
+0x4010 0x28
+0x4011 0x01
+0x4012 0x0c
+0x4015 0x00
+0x4016 0x1f
+0x4017 0x00
+0x4018 0x1f
+0x401e 0x01
+0x401f 0xa0
+0x4020 0x04
+0x4021 0x00
+0x4022 0x04
+0x4023 0x00
+0x4024 0x04
+0x4025 0x00
+0x4026 0x04
+0x4027 0x00
+0x4056 0x21
+0x401c 0x00
+0x401d 0x00
+0x430f 0x08
+0x430c 0xfc
+0x4500 0x24
+0x4501 0x08
+0x4502 0x00
+0x450a 0x05
+0x4640 0x01
+0x4641 0x04
+0x4642 0x22
+0x4643 0x02
+0x4645 0x03
+0x4809 0x2b
+0x480e 0x02
+0x4813 0x90
+0x481f 0x38
+
+0x4826 0x25
+0x4827 0x45
+
+0x4837 0x08
+0x4b05 0x83
+0x4d00 0x04
+0x4d01 0x30
+0x4d02 0xb7
+0x4d03 0xaf
+0x4d04 0xa9
+0x4d05 0xa7
+0x5000 0xa7
+0x5001 0x04
+0x5044 0x00
+0x5045 0x50
+0x5046 0x10
+0x5047 0x4f
+0x5048 0x00
+0x5049 0x30
+0x504a 0x0c
+0x504b 0x2f
+0x5017 0xfb
+0x5020 0x04
+0x5030 0x00
+0x5031 0x00
+0x5034 0x00
+0x5035 0x00
+0x50c0 0x01
+0x50c1 0x00
+0x55ca 0x07
+0x55cb 0x03
+0x5300 0x01
+0x5360 0x10
+0x5361 0xa0
+0x5362 0x0c
+0x5363 0x60
+0x5364 0x00
+0x5365 0x00
+0x5366 0x00
+0x5367 0x08
+0x5368 0x00
+0x5369 0x50
+0x536a 0x10
+0x536b 0x4f
+0x536c 0x00
+0x536d 0x30
+0x536e 0x0c
+0x536f 0x2f
+0x5370 0x00
+0x5371 0x00
+0x5372 0x00
+0x5373 0x00
+0x5374 0x00
+0x5375 0x00
+0x5376 0x00
+0x5377 0x00
+0x5378 0x20
+0x5379 0x00
+0x537a 0x20
+0x537b 0x00
+0x537c 0x00
+0x537d 0x00
+0x537e 0x00
+0x537f 0x00
+0x5380 0x00
+0x5381 0x00
+0x5382 0x00
+0x5383 0x00
+0x5384 0x00
+0x5385 0x00
+0x5386 0x00
+0x5387 0x00
+0x5388 0x20
+0x5389 0x00
+0x538a 0x20
+0x538b 0x00
+0x538c 0x00
+0x538d 0x00
+0x538e 0x00
+0x538f 0x00
+0x5390 0x00
+0x5391 0x00
+0x5392 0x00
+0x5393 0x00
+0x5394 0x00
+0x5395 0x00
+0x5396 0x00
+0x5397 0x00
+0x5398 0x00
+0x5399 0x20
+0x539a 0x00
+0x539b 0x20
+0x539c 0x00
+0x539d 0x00
+0x539e 0x00
+0x539f 0x00
+0x53a0 0x00
+0x53a1 0x00
+0x53a2 0x00
+0x53a3 0x00
+0x53a4 0x00
+0x53a5 0x00
+0x53a6 0x00
+0x53a7 0x00
+0x53a8 0x00
+0x53a9 0x20
+0x53aa 0x00
+0x53ab 0x20
+0x53ac 0x00
+0x53ad 0x00
+0x53ae 0x00
+0x53af 0x00
+0x53b0 0x00
+0x53b1 0x00
+0x53b2 0x00
+0x53b3 0x00
+0x53b4 0x00
+0x53b5 0x00
+0x53b6 0x00
+0x53b7 0x00
+0x53b8 0x20
+0x53b9 0x00
+0x53ba 0x20
+0x53bb 0x00
+0x53bc 0x00
+0x53bd 0x00
+0x53be 0x00
+0x53bf 0x00
+0x53c0 0x00
+0x53c1 0x00
+0x53c2 0x00
+0x53c3 0x00
+0x53c4 0x00
+0x53c5 0x00
+0x53c6 0x00
+0x53c7 0x00
+0x53c8 0x20
+0x53c9 0x00
+0x53ca 0x20
+0x53cb 0x00
+0x53cc 0x00
+0x53cd 0x00
+0x53ce 0x00
+0x53cf 0x00
+0x53d0 0x00
+0x53d1 0x00
+0x53d2 0x00
+0x53d3 0x00
+0x53d4 0x00
+0x53d5 0x00
+0x53d6 0x00
+0x53d7 0x00
+0x53d8 0x00
+0x53d9 0x20
+0x53da 0x00
+0x53db 0x20
+0x53dc 0x00
+0x53dd 0x00
+0x53de 0x00
+0x53df 0x00
+0x53e0 0x00
+0x53e1 0x00
+0x53e2 0x00
+0x53e3 0x00
+0x53e4 0x00
+0x53e5 0x00
+0x53e6 0x00
+0x53e7 0x00
+0x53e8 0x00
+0x53e9 0x20
+0x53ea 0x00
+0x53eb 0x20
+0x53ec 0x00
+0x53ed 0x00
+0x53ee 0x00
+0x53ef 0x00
+0x53f0 0x00
+0x53f1 0x00
+0x53f2 0x00
+0x53f3 0x00
+0x53f4 0x20
+0x53f5 0x00
+0x53f6 0x20
+0x53f7 0x00
+0x53f8 0x70
+0x53f9 0x00
+0x53fa 0x70
+0x53fb 0x00
+0x53fc 0x20
+0x53fd 0x00
+0x53fe 0x20
+0x53ff 0x00
+0x5400 0x00
+0x5401 0x00
+0x5402 0x00
+0x5403 0x00
+0x5404 0x20
+0x5405 0x00
+0x5406 0x20
+0x5407 0x00
+0x5408 0x70
+0x5409 0x00
+0x540a 0x70
+0x540b 0x00
+0x540c 0x20
+0x540d 0x00
+0x540e 0x20
+0x540f 0x00
+0x5410 0x00
+0x5411 0x00
+0x5412 0x00
+0x5413 0x00
+0x5414 0x00
+0x5415 0x20
+0x5416 0x00
+0x5417 0x20
+0x5418 0x00
+0x5419 0x70
+0x541a 0x00
+0x541b 0x70
+0x541c 0x00
+0x541d 0x20
+0x541e 0x00
+0x541f 0x20
+0x5420 0x00
+0x5421 0x00
+0x5422 0x00
+0x5423 0x00
+0x5424 0x00
+0x5425 0x20
+0x5426 0x00
+0x5427 0x20
+0x5428 0x00
+0x5429 0x70
+0x542a 0x00
+0x542b 0x70
+0x542c 0x00
+0x542d 0x20
+0x542e 0x00
+0x542f 0x20
+0x5430 0x00
+0x5431 0x00
+0x5432 0x00
+0x5433 0x00
+0x5434 0x20
+0x5435 0x00
+0x5436 0x20
+0x5437 0x00
+0x5438 0x70
+0x5439 0x00
+0x543a 0x70
+0x543b 0x00
+0x543c 0x20
+0x543d 0x00
+0x543e 0x20
+0x543f 0x00
+0x5440 0x00
+0x5441 0x00
+0x5442 0x00
+0x5443 0x00
+0x5444 0x20
+0x5445 0x00
+0x5446 0x20
+0x5447 0x00
+0x5448 0x70
+0x5449 0x00
+0x544a 0x70
+0x544b 0x00
+0x544c 0x20
+0x544d 0x00
+0x544e 0x20
+0x544f 0x00
+0x5450 0x00
+0x5451 0x00
+0x5452 0x00
+0x5453 0x00
+0x5454 0x00
+0x5455 0x20
+0x5456 0x00
+0x5457 0x20
+0x5458 0x00
+0x5459 0x70
+0x545a 0x00
+0x545b 0x70
+0x545c 0x00
+0x545d 0x20
+0x545e 0x00
+0x545f 0x20
+0x5460 0x00
+0x5461 0x00
+0x5462 0x00
+0x5463 0x00
+0x5464 0x00
+0x5465 0x20
+0x5466 0x00
+0x5467 0x20
+0x5468 0x00
+0x5469 0x70
+0x546a 0x00
+0x546b 0x70
+0x546c 0x00
+0x546d 0x20
+0x546e 0x00
+0x546f 0x20
+0x5474 0x00
+0x5475 0x18
+0x5476 0x23
+0x5477 0x10
+0x5700 0x01
+0x57b8 0x00
+0x57b9 0x7c
+0x57ba 0x00
+0x57bb 0xa8
+0x57c0 0x00
+0x57c1 0x00
+0x57c2 0x00
+0x57c3 0x08
+0x57c4 0x00
+0x57c5 0x50
+0x57c6 0x10
+0x57c7 0x4f
+0x57c8 0x00
+0x57c9 0x30
+0x57ca 0x0c
+0x57cb 0x2f
+0x57d4 0x00
+0x57d5 0x00
+0x57d6 0x00
+0x57d7 0x00
+0x57d8 0x00
+0x57d9 0x00
+0x57da 0x00
+0x57db 0x00
+0x57dc 0x20
+0x57dd 0x00
+0x57de 0x20
+0x57df 0x00
+0x57e0 0x00
+0x57e1 0x00
+0x57e2 0x00
+0x57e3 0x00
+0x57e4 0x00
+0x57e5 0x00
+0x57e6 0x00
+0x57e7 0x00
+0x57e8 0x00
+0x57e9 0x00
+0x57ea 0x00
+0x57eb 0x00
+0x57ec 0x20
+0x57ed 0x00
+0x57ee 0x20
+0x57ef 0x00
+0x57f0 0x00
+0x57f1 0x00
+0x57f2 0x00
+0x57f3 0x00
+0x57f4 0x00
+0x57f5 0x00
+0x57f6 0x00
+0x57f7 0x00
+0x57f8 0x00
+0x57f9 0x00
+0x57fa 0x00
+0x57fb 0x00
+0x57fc 0x00
+0x57fd 0x20
+0x57fe 0x00
+0x57ff 0x20
+0x5800 0x00
+0x5801 0x00
+0x5802 0x00
+0x5803 0x00
+0x5804 0x00
+0x5805 0x00
+0x5806 0x00
+0x5807 0x00
+0x5808 0x00
+0x5809 0x00
+0x580a 0x00
+0x580b 0x00
+0x580c 0x00
+0x580d 0x20
+0x580e 0x00
+0x580f 0x20
+0x5810 0x00
+0x5811 0x00
+0x5812 0x00
+0x5813 0x00
+0x5814 0x00
+0x5815 0x00
+0x5816 0x00
+0x5817 0x00
+0x5818 0x00
+0x5819 0x00
+0x581a 0x00
+0x581b 0x00
+0x581c 0x20
+0x581d 0x00
+0x581e 0x20
+0x581f 0x00
+0x5820 0x00
+0x5821 0x00
+0x5822 0x00
+0x5823 0x00
+0x5824 0x00
+0x5825 0x00
+0x5826 0x00
+0x5827 0x00
+0x5828 0x00
+0x5829 0x00
+0x582a 0x00
+0x582b 0x00
+0x582c 0x20
+0x582d 0x00
+0x582e 0x20
+0x582f 0x00
+0x5830 0x00
+0x5831 0x00
+0x5832 0x00
+0x5833 0x00
+0x5834 0x00
+0x5835 0x00
+0x5836 0x00
+0x5837 0x00
+0x5838 0x00
+0x5839 0x00
+0x583a 0x00
+0x583b 0x00
+0x583c 0x00
+0x583d 0x20
+0x583e 0x00
+0x583f 0x20
+0x5840 0x00
+0x5841 0x00
+0x5842 0x00
+0x5843 0x00
+0x5844 0x00
+0x5845 0x00
+0x5846 0x00
+0x5847 0x00
+0x5848 0x00
+0x5849 0x00
+0x584a 0x00
+0x584b 0x00
+0x584c 0x00
+0x584d 0x20
+0x584e 0x00
+0x584f 0x20
+0x5850 0x00
+0x5851 0x00
+0x5852 0x00
+0x5853 0x00
+0x5854 0x00
+0x5855 0x00
+0x5856 0x00
+0x5857 0x00
+0x5858 0x00
+0x5859 0x00
+0x585a 0x00
+0x585b 0x00
+0x585c 0x00
+0x585d 0x00
+0x585e 0x00
+0x585f 0x00
+0x5860 0x00
+0x5861 0x00
+0x5862 0x00
+0x5863 0x00
+0x5864 0x08
+0x5865 0x00
+0x5866 0x00
+0x5867 0x00
+0x5868 0x08
+0x5869 0x00
+0x586a 0x00
+0x586b 0x00
+0x586c 0x00
+0x586d 0x00
+0x586e 0x00
+0x586f 0x00
+0x5870 0x00
+0x5871 0x00
+0x5872 0x00
+0x5873 0x00
+0x5874 0x00
+0x5875 0x00
+0x5876 0x00
+0x5877 0x00
+0x5878 0x00
+0x5879 0x00
+0x587a 0x00
+0x587b 0x00
+0x587c 0x00
+0x587d 0x00
+0x587e 0x00
+0x587f 0x00
+0x5880 0x00
+0x5881 0x00
+0x5882 0x00
+0x5883 0x00
+0x5884 0x0c
+0x5885 0x00
+0x5886 0x00
+0x5887 0x00
+0x5888 0x0c
+0x5889 0x00
+0x588a 0x00
+0x588b 0x00
+0x588c 0x00
+0x588d 0x00
+0x588e 0x00
+0x588f 0x00
+0x5890 0x00
+0x5891 0x00
+0x5892 0x00
+0x5893 0x00
+0x5894 0x00
+0x5895 0x00
+0x5896 0x00
+0x5897 0x00
+0x5898 0x00
+0x5899 0x00
+0x589a 0x00
+0x589b 0x00
+0x589c 0x00
+0x589d 0x00
+0x589e 0x00
+0x589f 0x00
+0x58a0 0x00
+0x58a1 0x00
+0x58a2 0x00
+0x58a3 0x00
+0x58a4 0x00
+0x58a5 0x00
+0x58a6 0x0c
+0x58a7 0x00
+0x58a8 0x00
+0x58a9 0x00
+0x58aa 0x0c
+0x58ab 0x00
+0x58ac 0x00
+0x58ad 0x00
+0x58ae 0x00
+0x58af 0x00
+0x58b0 0x00
+0x58b1 0x00
+0x58b2 0x00
+0x58b3 0x00
+0x58b4 0x00
+0x58b5 0x00
+0x58b6 0x00
+0x58b7 0x00
+0x58b8 0x00
+0x58b9 0x00
+0x58ba 0x00
+0x58bb 0x00
+0x58bc 0x00
+0x58bd 0x00
+0x58be 0x00
+0x58bf 0x00
+0x58c0 0x00
+0x58c1 0x00
+0x58c2 0x00
+0x58c3 0x00
+0x58c4 0x00
+0x58c5 0x00
+0x58c6 0x08
+0x58c7 0x00
+0x58c8 0x00
+0x58c9 0x00
+0x58ca 0x08
+0x58cb 0x00
+0x58cc 0x00
+0x58cd 0x00
+0x58ce 0x00
+0x58cf 0x00
+0x58d0 0x00
+0x58d1 0x00
+0x58d2 0x00
+0x58d3 0x00
+0x58d4 0x00
+0x58d5 0x00
+0x58d6 0x00
+0x58d7 0x00
+0x58d8 0x00
+0x58d9 0x00
+0x58da 0x00
+0x58db 0x00
+0x58dc 0x00
+0x58dd 0x00
+0x58de 0x00
+0x58df 0x00
+0x58e0 0x00
+0x58e1 0x00
+0x58e2 0x00
+0x58e3 0x00
+0x58e4 0x08
+0x58e5 0x00
+0x58e6 0x00
+0x58e7 0x00
+0x58e8 0x08
+0x58e9 0x00
+0x58ea 0x00
+0x58eb 0x00
+0x58ec 0x00
+0x58ed 0x00
+0x58ee 0x00
+0x58ef 0x00
+0x58f0 0x00
+0x58f1 0x00
+0x58f2 0x00
+0x58f3 0x00
+0x58f4 0x00
+0x58f5 0x00
+0x58f6 0x00
+0x58f7 0x00
+0x58f8 0x00
+0x58f9 0x00
+0x58fa 0x00
+0x58fb 0x00
+0x58fc 0x00
+0x58fd 0x00
+0x58fe 0x00
+0x58ff 0x00
+0x5900 0x00
+0x5901 0x00
+0x5902 0x00
+0x5903 0x00
+0x5904 0x0c
+0x5905 0x00
+0x5906 0x00
+0x5907 0x00
+0x5908 0x0c
+0x5909 0x00
+0x590a 0x00
+0x590b 0x00
+0x590c 0x00
+0x590d 0x00
+0x590e 0x00
+0x590f 0x00
+0x5910 0x00
+0x5911 0x00
+0x5912 0x00
+0x5913 0x00
+0x5914 0x00
+0x5915 0x00
+0x5916 0x00
+0x5917 0x00
+0x5918 0x00
+0x5919 0x00
+0x591a 0x00
+0x591b 0x00
+0x591c 0x00
+0x591d 0x00
+0x591e 0x00
+0x591f 0x00
+0x5920 0x00
+0x5921 0x00
+0x5922 0x00
+0x5923 0x00
+0x5924 0x00
+0x5925 0x00
+0x5926 0x0c
+0x5927 0x00
+0x5928 0x00
+0x5929 0x00
+0x592a 0x0c
+0x592b 0x00
+0x592c 0x00
+0x592d 0x00
+0x592e 0x00
+0x592f 0x00
+0x5930 0x00
+0x5931 0x00
+0x5932 0x00
+0x5933 0x00
+0x5934 0x00
+0x5935 0x00
+0x5936 0x00
+0x5937 0x00
+0x5938 0x00
+0x5939 0x00
+0x593a 0x00
+0x593b 0x00
+0x593c 0x00
+0x593d 0x00
+0x593e 0x00
+0x593f 0x00
+0x5940 0x00
+0x5941 0x00
+0x5942 0x00
+0x5943 0x00
+0x5944 0x00
+0x5945 0x00
+0x5946 0x08
+0x5947 0x00
+0x5948 0x00
+0x5949 0x00
+0x594a 0x08
+0x594b 0x00
+0x594c 0x00
+0x594d 0x00
+0x594e 0x00
+0x594f 0x00
+0x5950 0x00
+0x5951 0x00
+0x5952 0x00
+0x5953 0x00
+0x5956 0x40
+0x5958 0x00
+0x5959 0x10
+0x595a 0x00
+0x595b 0x10
+0x595c 0x10
+0x595d 0x80
+0x595e 0x0c
+0x595f 0x40
+0x5954 0x04
+0x5a90 0x01
+0x5a10 0x00
+0x5a11 0x00
+0x5a12 0x00
+0x5a13 0x00
+0x5a14 0x00
+0x5a15 0x00
+0x5a16 0x00
+0x5a17 0x00
+0x5a18 0x20
+0x5a19 0x00
+0x5a1a 0x20
+0x5a1b 0x00
+0x5a1c 0x00
+0x5a1d 0x00
+0x5a1e 0x00
+0x5a1f 0x00
+0x5a20 0x00
+0x5a21 0x00
+0x5a22 0x00
+0x5a23 0x00
+0x5a24 0x00
+0x5a25 0x00
+0x5a26 0x00
+0x5a27 0x00
+0x5a28 0x20
+0x5a29 0x00
+0x5a2a 0x20
+0x5a2b 0x00
+0x5a2c 0x00
+0x5a2d 0x00
+0x5a2e 0x00
+0x5a2f 0x00
+0x5a30 0x00
+0x5a31 0x00
+0x5a32 0x00
+0x5a33 0x00
+0x5a34 0x00
+0x5a35 0x00
+0x5a36 0x00
+0x5a37 0x00
+0x5a38 0x00
+0x5a39 0x20
+0x5a3a 0x00
+0x5a3b 0x20
+0x5a3c 0x00
+0x5a3d 0x00
+0x5a3e 0x00
+0x5a3f 0x00
+0x5a40 0x00
+0x5a41 0x00
+0x5a42 0x00
+0x5a43 0x00
+0x5a44 0x00
+0x5a45 0x00
+0x5a46 0x00
+0x5a47 0x00
+0x5a48 0x00
+0x5a49 0x20
+0x5a4a 0x00
+0x5a4b 0x20
+0x5a4c 0x00
+0x5a4d 0x00
+0x5a4e 0x00
+0x5a4f 0x00
+0x5a50 0x00
+0x5a51 0x00
+0x5a52 0x00
+0x5a53 0x00
+0x5a54 0x00
+0x5a55 0x00
+0x5a56 0x00
+0x5a57 0x00
+0x5a58 0x20
+0x5a59 0x00
+0x5a5a 0x20
+0x5a5b 0x00
+0x5a5c 0x00
+0x5a5d 0x00
+0x5a5e 0x00
+0x5a5f 0x00
+0x5a60 0x00
+0x5a61 0x00
+0x5a62 0x00
+0x5a63 0x00
+0x5a64 0x00
+0x5a65 0x00
+0x5a66 0x00
+0x5a67 0x00
+0x5a68 0x20
+0x5a69 0x00
+0x5a6a 0x20
+0x5a6b 0x00
+0x5a6c 0x00
+0x5a6d 0x00
+0x5a6e 0x00
+0x5a6f 0x00
+0x5a70 0x00
+0x5a71 0x00
+0x5a72 0x00
+0x5a73 0x00
+0x5a74 0x00
+0x5a75 0x00
+0x5a76 0x00
+0x5a77 0x00
+0x5a78 0x00
+0x5a79 0x20
+0x5a7a 0x00
+0x5a7b 0x20
+0x5a7c 0x00
+0x5a7d 0x00
+0x5a7e 0x00
+0x5a7f 0x00
+0x5a80 0x00
+0x5a81 0x00
+0x5a82 0x00
+0x5a83 0x00
+0x5a84 0x00
+0x5a85 0x00
+0x5a86 0x00
+0x5a87 0x00
+0x5a88 0x00
+0x5a89 0x20
+0x5a8a 0x00
+0x5a8b 0x20
+0x5a8c 0x00
+0x5a8d 0x00
+0x5a8e 0x00
+0x5a8f 0x00
+0x5280 0x00
+0x5281 0x10
+0x5282 0x0f
+0x5283 0x37
+0x5285 0x07
+0x5500 0xbf
+0x5501 0xf3
+0x5502 0x4d
+0x5503 0x1b
+0x5504 0xe0
+0x5505 0x10
+0x5506 0x3f
+0x5507 0x30
+0x5508 0x04
+0x5509 0x0f
+0x550a 0x43
+0x5e01 0xf3
+0x5e02 0x4d
+0x5e03 0x1b
+0x5e04 0xe0
+0x5e05 0x10
+0x5e06 0x3f
+0x5e07 0x30
+0x5e08 0x04
+0x5e09 0x0f
+0x5e0a 0x43
+0x3025 0x03
+0x3664 0x03
+0x3668 0xf0
+0x3669 0x0e
+0x3406 0x08
+0x3408 0x03
+0x4a00 0x08
+0x0304 0x15
+0x4837 0x0d
+0x401a 0x40
+0x0303 0x20
+0x0317 0x02
+0x031e 0x0a
+0x3016 0x96
+0x3018 0x70
+0x3400 0x00
+0x340c 0xff
+0x340d 0xff
+0x3501 0x03
+0x3502 0x3c
+0x3600 0x0c
+0x3602 0x0b
+0x3621 0x8f
+0x3622 0x98
+0x366c 0x04
+0x3726 0x21
+0x3808 0x02
+0x3809 0x80
+0x380a 0x01
+0x380b 0xe0
+0x380c 0x03
+0x380d 0x68
+0x380e 0x0d
+0x380f 0x70
+0x3811 0x03
+0x3813 0x08
+0x3814 0x31
+0x3815 0x53
+0x3820 0x00
+0x3821 0x05
+0x3842 0x40
+0x4016 0x07
+0x4018 0x07
+0x4837 0x10
+0x5000 0xc6
+0x5081 0x01
+0x5001 0x00
+0x50c0 0xf1
+0x50c1 0x04

+ 241 - 0
drivers/OV12870/OV12870_priv.h

@@ -0,0 +1,241 @@
+/******************************************************************************\
+|* Copyright (c) 2020 by VeriSilicon Holdings Co., Ltd. ("VeriSilicon")       *|
+|* All Rights Reserved.                                                       *|
+|*                                                                            *|
+|* The material in this file is confidential and contains trade secrets of    *|
+|* of VeriSilicon.  This is proprietary information owned or licensed by      *|
+|* VeriSilicon.  No part of this work may be disclosed, reproduced, copied,   *|
+|* transmitted, or used in any way for any purpose, without the express       *|
+|* written permission of VeriSilicon.                                         *|
+|*                                                                            *|
+\******************************************************************************/
+/**
+ * @file OV12870_priv.h
+ *
+ * @brief Interface description for image sensor specific implementation (iss).
+ *
+ *****************************************************************************/
+/**
+ * @page module_name_page Module Name
+ * Describe here what this module does.
+ *
+ * For a detailed list of functions and implementation detail refer to:
+ * - @ref module_name
+ *
+ * @defgroup ov12870_priv
+ * @{
+ *
+ */
+#ifndef __OV12870_PRIV_H__
+#define __OV12870_PRIV_H__
+
+#include <ebase/types.h>
+#include <common/return_codes.h>
+#include <hal/hal_api.h>
+#include <isi/isi_common.h>
+#include "vvsensor.h"
+
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+
+
+/*****************************************************************************
+ * SC control registers
+ *****************************************************************************/
+#define OV12870_PIDH                         (0x300A)  //R  - Product ID High Byte MSBs
+#define OV12870_PIDL                         (0x300B)  //R  - Product ID Low Byte LSBs
+
+/*****************************************************************************
+ * Default values
+ *****************************************************************************/
+
+ // Make sure that these static settings are reflecting the capabilities defined
+// in IsiGetCapsIss (further dynamic setup may alter these default settings but
+// often does not if there is no choice available).
+
+/*****************************************************************************
+ * SC control registers
+ *****************************************************************************/
+#define OV12870_PIDH_DEFAULT                        (0x27) //read only
+#define OV12870_PIDL_DEFAULT                        (0x70) //read only
+
+typedef struct OV12870_Context_s
+{
+    IsiSensorContext_t  IsiCtx;                 /**< common context of ISI and ISI driver layer; @note: MUST BE FIRST IN DRIVER CONTEXT */
+
+    struct vvcam_mode_info SensorMode;
+    uint32_t            KernelDriverFlag;
+    char                SensorRegCfgFile[128];
+
+    uint32_t              HdrMode;
+    uint32_t              Resolution;
+    uint32_t              MaxFps;
+    uint32_t              MinFps;
+    uint32_t              CurrFps;
+    //// modify below here ////
+
+    IsiSensorConfig_t   Config;                 /**< sensor configuration */
+    bool_t              Configured;             /**< flags that config was applied to sensor */
+    bool_t              Streaming;              /**< flags that csensor is streaming data */
+    bool_t              TestPattern;            /**< flags that sensor is streaming test-pattern */
+
+    bool_t              isAfpsRun;              /**< if true, just do anything required for Afps parameter calculation, but DON'T access SensorHW! */
+
+    float               one_line_exp_time;
+    uint16_t            MaxIntegrationLine;
+    uint16_t            MinIntegrationLine;
+    uint32_t            gain_accuracy;
+
+    uint16_t            FrameLengthLines;       /**< frame line length */
+    uint16_t            CurFrameLengthLines;
+
+    float               AecMinGain;
+    float               AecMaxGain;
+    float               AecMinIntegrationTime;
+    float               AecMaxIntegrationTime;
+
+    float               AecIntegrationTimeIncrement; /**< _smallest_ increment the sensor/driver can handle (e.g. used for sliders in the application) */
+    float               AecGainIncrement;            /**< _smallest_ increment the sensor/driver can handle (e.g. used for sliders in the application) */
+
+    float               AecCurIntegrationTime;
+    float               AecCurVSIntegrationTime;
+    float               AecCurLongIntegrationTime;
+    float               AecCurGain;
+    float               AecCurVSGain;
+    float               AecCurLongGain;
+
+    uint32_t            LastExpLine;
+    uint32_t            LastVsExpLine;
+    uint32_t            LastLongExpLine;
+
+    uint32_t            LastGain;
+    uint32_t            LastVsGain;
+    uint32_t            LastLongGain;
+
+    bool                GroupHold;
+    uint32_t            OldGain;
+    uint32_t            OldVsGain;
+    uint32_t            OldIntegrationTime;
+    uint32_t            OldVsIntegrationTime;
+    uint32_t            OldGainHcg;
+    uint32_t            OldAGainHcg;
+    uint32_t            OldGainLcg;
+    uint32_t            OldAGainLcg;
+    int                 subdev;
+    uint8_t             pattern;
+
+    float               CurHdrRatio;
+} OV12870_Context_t;
+
+static RESULT OV12870_IsiCreateSensorIss(IsiSensorInstanceConfig_t *
+                          pConfig);
+
+static RESULT OV12870_IsiInitSensorIss(IsiSensorHandle_t handle);
+
+static RESULT OV12870_IsiReleaseSensorIss(IsiSensorHandle_t handle);
+
+static RESULT OV12870_IsiGetCapsIss(IsiSensorHandle_t handle,
+                         IsiSensorCaps_t * pIsiSensorCaps);
+
+static RESULT OV12870_IsiSetupSensorIss(IsiSensorHandle_t handle,
+                         const IsiSensorConfig_t *
+                         pConfig);
+
+static RESULT OV12870_IsiSensorSetStreamingIss(IsiSensorHandle_t handle,
+                               bool_t on);
+
+static RESULT OV12870_IsiSensorSetPowerIss(IsiSensorHandle_t handle,
+                            bool_t on);
+
+static RESULT OV12870_IsiGetSensorRevisionIss(IsiSensorHandle_t handle,
+                               uint32_t * p_value);
+
+static RESULT OV12870_IsiSetBayerPattern(IsiSensorHandle_t handle,
+                          uint8_t pattern);
+
+static RESULT OV12870_IsiGetGainLimitsIss(IsiSensorHandle_t handle,
+                             float *pMinGain,
+                             float *pMaxGain);
+
+static RESULT OV12870_IsiGetIntegrationTimeLimitsIss(IsiSensorHandle_t
+                                 handle,
+                                 float
+                                 *pMinIntegrationTime,
+                                 float
+                                 *pMaxIntegrationTime);
+
+static RESULT OV12870_IsiExposureControlIss(IsiSensorHandle_t handle,
+                            float NewGain,
+                            float NewIntegrationTime,
+                            uint8_t *
+                            pNumberOfFramesToSkip,
+                            float *pSetGain,
+                            float *pSetIntegrationTime,
+                            float *hdr_ratio);
+
+static RESULT OV12870_IsiGetGainIss(IsiSensorHandle_t handle,
+                        float *pSetGain);
+
+static RESULT OV12870_IsiGetVSGainIss(IsiSensorHandle_t handle,
+                          float *pSetGain);
+
+static RESULT OV12870_IsiGetGainIncrementIss(IsiSensorHandle_t handle,
+                             float *pIncr);
+
+static RESULT OV12870_IsiSetGainIss(IsiSensorHandle_t handle,
+                        float NewGain, float *pSetGain,
+                        float *hdr_ratio);
+
+static RESULT OV12870_IsiSetVSGainIss(IsiSensorHandle_t handle,
+                          float NewIntegrationTime,
+                          float NewGain, float *pSetGain,
+                          float *hdr_ratio);
+
+static RESULT OV12870_IsiGetIntegrationTimeIss(IsiSensorHandle_t handle,
+                               float
+                               *pSetIntegrationTime);
+
+static RESULT OV12870_IsiGetVSIntegrationTimeIss(IsiSensorHandle_t
+                             handle,
+                             float
+                             *pSetIntegrationTime);
+
+static RESULT OV12870_IsiGetIntegrationTimeIncrementIss(IsiSensorHandle_t handle,
+                             float *pIncr);
+
+static RESULT OV12870_IsiSetIntegrationTimeIss(IsiSensorHandle_t handle,
+                               float NewIntegrationTime,
+                               float
+                               *pSetIntegrationTime,
+                               uint8_t *
+                               pNumberOfFramesToSkip,
+                               float *hdr_ratio);
+
+static RESULT OV12870_IsiSetVSIntegrationTimeIss(IsiSensorHandle_t
+                             handle,
+                             float
+                             NewIntegrationTime,
+                             float
+                             *pSetIntegrationTime,
+                             uint8_t *
+                             pNumberOfFramesToSkip,
+                             float *hdr_ratio);
+
+RESULT OV12870_IsiGetResolutionIss(IsiSensorHandle_t handle, uint16_t *pwidth, uint16_t *pheight);
+
+static RESULT OV12870_IsiResetSensorIss(IsiSensorHandle_t handle);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/* @} ov12870priv */
+
+#endif    /* __OV12870PRIV_H__ */
+

+ 1377 - 0
drivers/OV12870/ov12870.h

@@ -0,0 +1,1377 @@
+/*
+ * Support for OmniVision OV12870 5M camera sensor.
+ *
+ * Copyright (c) 2013 Intel Corporation. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License version
+ * 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ */
+
+#ifndef __OV12870_H__
+#define __OV12870_H__
+
+#define OV12870_NAME		"ov12870"
+
+#define OV12870_POWER_UP_RETRY_NUM 5
+
+/* Defines for register writes and register array processing */
+#define I2C_MSG_LENGTH		0x2
+#define I2C_RETRY_COUNT		5
+
+#define OV12870_FOCAL_LENGTH_NUM	334	/*3.34mm*/
+#define OV12870_FOCAL_LENGTH_DEM	100
+#define OV12870_F_NUMBER_DEFAULT_NUM	24
+#define OV12870_F_NUMBER_DEM	10
+
+#define MAX_FMTS		1
+
+/* sensor_mode_data read_mode adaptation */
+#define OV12870_READ_MODE_BINNING_ON	0x0400
+#define OV12870_READ_MODE_BINNING_OFF	0x00
+#define OV12870_INTEGRATION_TIME_MARGIN	8
+
+#define OV12870_MAX_EXPOSURE_VALUE	0xFFF1
+#define OV12870_MAX_GAIN_VALUE		0xFF
+
+/*
+ * focal length bits definition:
+ * bits 31-16: numerator, bits 15-0: denominator
+ */
+#define OV12870_FOCAL_LENGTH_DEFAULT 0x1B70064
+
+/*
+ * current f-number bits definition:
+ * bits 31-16: numerator, bits 15-0: denominator
+ */
+#define OV12870_F_NUMBER_DEFAULT 0x18000a
+
+/*
+ * f-number range bits definition:
+ * bits 31-24: max f-number numerator
+ * bits 23-16: max f-number denominator
+ * bits 15-8: min f-number numerator
+ * bits 7-0: min f-number denominator
+ */
+#define OV12870_F_NUMBER_RANGE 0x180a180a
+#define OV12870_ID	0x5690
+
+#define OV12870_FINE_INTG_TIME_MIN 0
+#define OV12870_FINE_INTG_TIME_MAX_MARGIN 0
+#define OV12870_COARSE_INTG_TIME_MIN 1
+#define OV12870_COARSE_INTG_TIME_MAX_MARGIN 6
+
+#define OV12870_BIN_FACTOR_MAX 4
+/*
+ * OV12870 System control registers
+ */
+#define OV12870_SW_SLEEP				0x0100
+#define OV12870_SW_RESET				0x0103
+#define OV12870_SW_STREAM			0x0100
+
+#define OV12870_SC_CMMN_CHIP_ID_H		0x300A
+#define OV12870_SC_CMMN_CHIP_ID_L		0x300B
+#define OV12870_SC_CMMN_SCCB_ID			0x300C
+#define OV12870_SC_CMMN_SUB_ID			0x302A /* process, version*/
+/*Bit[7:4] Group control, Bit[3:0] Group ID*/
+#define OV12870_GROUP_ACCESS			0x3208
+/*
+*Bit[3:0] Bit[19:16] of exposure,
+*remaining 16 bits lies in Reg0x3501&Reg0x3502
+*/
+#define OV12870_EXPOSURE_H			0x3500
+#define OV12870_EXPOSURE_M			0x3501
+#define OV12870_EXPOSURE_L			0x3502
+/*Bit[1:0] means Bit[9:8] of gain*/
+#define OV12870_AGC_H				0x350A
+#define OV12870_AGC_L				0x350B /*Bit[7:0] of gain*/
+
+#define OV12870_HORIZONTAL_START_H		0x3800 /*Bit[11:8]*/
+#define OV12870_HORIZONTAL_START_L		0x3801 /*Bit[7:0]*/
+#define OV12870_VERTICAL_START_H			0x3802 /*Bit[11:8]*/
+#define OV12870_VERTICAL_START_L			0x3803 /*Bit[7:0]*/
+#define OV12870_HORIZONTAL_END_H			0x3804 /*Bit[11:8]*/
+#define OV12870_HORIZONTAL_END_L			0x3805 /*Bit[7:0]*/
+#define OV12870_VERTICAL_END_H			0x3806 /*Bit[11:8]*/
+#define OV12870_VERTICAL_END_L			0x3807 /*Bit[7:0]*/
+#define OV12870_HORIZONTAL_OUTPUT_SIZE_H		0x3808 /*Bit[3:0]*/
+#define OV12870_HORIZONTAL_OUTPUT_SIZE_L		0x3809 /*Bit[7:0]*/
+#define OV12870_VERTICAL_OUTPUT_SIZE_H		0x380a /*Bit[3:0]*/
+#define OV12870_VERTICAL_OUTPUT_SIZE_L		0x380b /*Bit[7:0]*/
+/*High 8-bit, and low 8-bit HTS address is 0x380d*/
+#define OV12870_TIMING_HTS_H			0x380C
+/*High 8-bit, and low 8-bit HTS address is 0x380d*/
+#define OV12870_TIMING_HTS_L			0x380D
+/*High 8-bit, and low 8-bit HTS address is 0x380f*/
+#define OV12870_TIMING_VTS_H			0x380e
+/*High 8-bit, and low 8-bit HTS address is 0x380f*/
+#define OV12870_TIMING_VTS_L			0x380f
+
+#define OV12870_MWB_RED_GAIN_H			0x3400
+#define OV12870_MWB_GREEN_GAIN_H			0x3402
+#define OV12870_MWB_BLUE_GAIN_H			0x3404
+#define OV12870_MWB_GAIN_MAX			0x0fff
+
+#define OV12870_START_STREAMING			0x01
+#define OV12870_STOP_STREAMING			0x00
+
+#define VCM_ADDR           0x0c
+#define VCM_CODE_MSB       0x04
+
+#define OV12870_INVALID_CONFIG	0xffffffff
+
+#define OV12870_VCM_SLEW_STEP			0x30F0
+#define OV12870_VCM_SLEW_STEP_MAX		0x7
+#define OV12870_VCM_SLEW_STEP_MASK		0x7
+#define OV12870_VCM_CODE				0x30F2
+#define OV12870_VCM_SLEW_TIME			0x30F4
+#define OV12870_VCM_SLEW_TIME_MAX		0xffff
+#define OV12870_VCM_ENABLE			0x8000
+
+#define OV12870_VCM_MAX_FOCUS_NEG       -1023
+#define OV12870_VCM_MAX_FOCUS_POS       1023
+
+#define DLC_ENABLE 1
+#define DLC_DISABLE 0
+#define VCM_PROTECTION_OFF     0xeca3
+#define VCM_PROTECTION_ON      0xdc51
+#define VCM_DEFAULT_S 0x0
+#define vcm_step_s(a) (u8)(a & 0xf)
+#define vcm_step_mclk(a) (u8)((a >> 4) & 0x3)
+#define vcm_dlc_mclk(dlc, mclk) (u16)((dlc << 3) | mclk | 0xa104)
+#define vcm_tsrc(tsrc) (u16)(tsrc << 3 | 0xf200)
+#define vcm_val(data, s) (u16)(data << 4 | s)
+#define DIRECT_VCM vcm_dlc_mclk(0, 0)
+
+/* Defines for OTP Data Registers */
+#define OV12870_FRAME_OFF_NUM		0x4202
+#define OV12870_OTP_BYTE_MAX		32	//change to 32 as needed by otpdata
+#define OV12870_OTP_SHORT_MAX		16
+#define OV12870_OTP_START_ADDR		0x3D00
+#define OV12870_OTP_END_ADDR		0x3D0F
+#define OV12870_OTP_DATA_SIZE		320
+#define OV12870_OTP_PROGRAM_REG      	0x3D80
+#define OV12870_OTP_READ_REG		0x3D81	// 1:Enable 0:disable
+#define OV12870_OTP_BANK_REG		0x3D84	//otp bank and mode
+#define OV12870_OTP_READY_REG_DONE	1
+#define OV12870_OTP_BANK_MAX		28
+#define OV12870_OTP_BANK_SIZE		16	//16 bytes per bank
+#define OV12870_OTP_READ_ONETIME		16
+#define OV12870_OTP_MODE_READ		1
+
+typedef enum OV12870_EXPOSURE_SETTING_e {
+	OV12870_ANALOG_GAIN = 1 << 0,
+	OV12870_INTEGRATION_TIME = 1 << 1,
+	OV12870_DIGITAL_GAIN = 1 << 2,
+}OV12870_EXPOSURE_SETTING_t;
+
+#if 0
+struct regval_list {
+	u16 reg_num;
+	u8 value;
+};
+
+struct ov12870_resolution {
+	u8 *desc;
+	const struct ov12870_reg *regs;
+	int res;
+	int width;
+	int height;
+	int fps;
+	int pix_clk_freq;
+	u16 pixels_per_line;
+	u16 lines_per_frame;
+	u8 bin_factor_x;
+	u8 bin_factor_y;
+	u8 bin_mode;
+	bool used;
+};
+
+struct ov12870_format {
+	u8 *desc;
+	u32 pixelformat;
+	struct ov12870_reg *regs;
+};
+
+enum vcm_type {
+	VCM_UNKNOWN,
+	VCM_AD5823,
+	VCM_DW9714,
+};
+
+/*
+ * ov12870 device structure.
+ */
+struct ov12870_device {
+	struct v4l2_subdev sd;
+	struct media_pad pad;
+	struct v4l2_mbus_framefmt format;
+	struct mutex input_lock;
+	struct v4l2_ctrl_handler ctrl_handler;
+
+	struct camera_sensor_platform_data *platform_data;
+	struct timespec timestamp_t_focus_abs;
+	int vt_pix_clk_freq_mhz;
+	int fmt_idx;
+	int run_mode;
+	int otp_size;
+	u8 *otp_data;
+	u32 focus;
+	s16 number_of_steps;
+	u8 res;
+	u8 type;
+	bool vcm_update;
+	enum vcm_type vcm;
+};
+
+enum ov12870_tok_type {
+	OV12870_8BIT  = 0x0001,
+	OV12870_16BIT = 0x0002,
+	OV12870_32BIT = 0x0004,
+	OV12870_TOK_TERM   = 0xf000,	/* terminating token for reg list */
+	OV12870_TOK_DELAY  = 0xfe00,	/* delay token for reg list */
+	OV12870_TOK_MASK = 0xfff0
+};
+
+/**
+ * struct ov12870_reg - MI sensor  register format
+ * @type: type of the register
+ * @reg: 16-bit offset to register
+ * @val: 8/16/32-bit register value
+ *
+ * Define a structure for sensor register initialization values
+ */
+struct ov12870_reg {
+	enum ov12870_tok_type type;
+	u16 reg;
+	u32 val;	/* @set value for read/mod/write, @mask */
+};
+
+#define to_ov12870_sensor(x) container_of(x, struct ov12870_device, sd)
+
+#define OV12870_MAX_WRITE_BUF_SIZE	30
+
+struct ov12870_write_buffer {
+	u16 addr;
+	u8 data[OV12870_MAX_WRITE_BUF_SIZE];
+};
+
+struct ov12870_write_ctrl {
+	int index;
+	struct ov12870_write_buffer buffer;
+};
+
+static const struct i2c_device_id ov12870_id[] = {
+	{OV12870_NAME, 0},
+	{}
+};
+
+static struct ov12870_reg const ov12870_global_setting[] = {
+	{OV12870_8BIT, 0x0103, 0x01},
+	{OV12870_8BIT, 0x3001, 0x0a},
+	{OV12870_8BIT, 0x3002, 0x80},
+	{OV12870_8BIT, 0x3006, 0x00},
+	{OV12870_8BIT, 0x3011, 0x21},
+	{OV12870_8BIT, 0x3012, 0x09},
+	{OV12870_8BIT, 0x3013, 0x10},
+	{OV12870_8BIT, 0x3014, 0x00},
+	{OV12870_8BIT, 0x3015, 0x08},
+	{OV12870_8BIT, 0x3016, 0xf0},
+	{OV12870_8BIT, 0x3017, 0xf0},
+	{OV12870_8BIT, 0x3018, 0xf0},
+	{OV12870_8BIT, 0x301b, 0xb4},
+	{OV12870_8BIT, 0x301d, 0x02},
+	{OV12870_8BIT, 0x3021, 0x00},
+	{OV12870_8BIT, 0x3022, 0x01},
+	{OV12870_8BIT, 0x3028, 0x44},
+	{OV12870_8BIT, 0x3098, 0x02},
+	{OV12870_8BIT, 0x3099, 0x19},
+	{OV12870_8BIT, 0x309a, 0x02},
+	{OV12870_8BIT, 0x309b, 0x01},
+	{OV12870_8BIT, 0x309c, 0x00},
+	{OV12870_8BIT, 0x30a0, 0xd2},
+	{OV12870_8BIT, 0x30a2, 0x01},
+	{OV12870_8BIT, 0x30b2, 0x00},
+	{OV12870_8BIT, 0x30b3, 0x7d},
+	{OV12870_8BIT, 0x30b4, 0x03},
+	{OV12870_8BIT, 0x30b5, 0x04},
+	{OV12870_8BIT, 0x30b6, 0x01},
+	{OV12870_8BIT, 0x3104, 0x21},
+	{OV12870_8BIT, 0x3106, 0x00},
+	{OV12870_8BIT, 0x3400, 0x04},
+	{OV12870_8BIT, 0x3401, 0x00},
+	{OV12870_8BIT, 0x3402, 0x04},
+	{OV12870_8BIT, 0x3403, 0x00},
+	{OV12870_8BIT, 0x3404, 0x04},
+	{OV12870_8BIT, 0x3405, 0x00},
+	{OV12870_8BIT, 0x3406, 0x01},
+	{OV12870_8BIT, 0x3500, 0x00},
+	{OV12870_8BIT, 0x3503, 0x07},
+	{OV12870_8BIT, 0x3504, 0x00},
+	{OV12870_8BIT, 0x3505, 0x00},
+	{OV12870_8BIT, 0x3506, 0x00},
+	{OV12870_8BIT, 0x3507, 0x02},
+	{OV12870_8BIT, 0x3508, 0x00},
+	{OV12870_8BIT, 0x3509, 0x10},
+	{OV12870_8BIT, 0x350a, 0x00},
+	{OV12870_8BIT, 0x350b, 0x40},
+	{OV12870_8BIT, 0x3601, 0x0a},
+	{OV12870_8BIT, 0x3602, 0x38},
+	{OV12870_8BIT, 0x3612, 0x80},
+	{OV12870_8BIT, 0x3620, 0x54},
+	{OV12870_8BIT, 0x3621, 0xc7},
+	{OV12870_8BIT, 0x3622, 0x0f},
+	{OV12870_8BIT, 0x3625, 0x10},
+	{OV12870_8BIT, 0x3630, 0x55},
+	{OV12870_8BIT, 0x3631, 0xf4},
+	{OV12870_8BIT, 0x3632, 0x00},
+	{OV12870_8BIT, 0x3633, 0x34},
+	{OV12870_8BIT, 0x3634, 0x02},
+	{OV12870_8BIT, 0x364d, 0x0d},
+	{OV12870_8BIT, 0x364f, 0xdd},
+	{OV12870_8BIT, 0x3660, 0x04},
+	{OV12870_8BIT, 0x3662, 0x10},
+	{OV12870_8BIT, 0x3663, 0xf1},
+	{OV12870_8BIT, 0x3665, 0x00},
+	{OV12870_8BIT, 0x3666, 0x20},
+	{OV12870_8BIT, 0x3667, 0x00},
+	{OV12870_8BIT, 0x366a, 0x80},
+	{OV12870_8BIT, 0x3680, 0xe0},
+	{OV12870_8BIT, 0x3681, 0x00},
+	{OV12870_8BIT, 0x3700, 0x42},
+	{OV12870_8BIT, 0x3701, 0x14},
+	{OV12870_8BIT, 0x3702, 0xa0},
+	{OV12870_8BIT, 0x3703, 0xd8},
+	{OV12870_8BIT, 0x3704, 0x78},
+	{OV12870_8BIT, 0x3705, 0x02},
+	{OV12870_8BIT, 0x370a, 0x00},
+	{OV12870_8BIT, 0x370b, 0x20},
+	{OV12870_8BIT, 0x370c, 0x0c},
+	{OV12870_8BIT, 0x370d, 0x11},
+	{OV12870_8BIT, 0x370e, 0x00},
+	{OV12870_8BIT, 0x370f, 0x40},
+	{OV12870_8BIT, 0x3710, 0x00},
+	{OV12870_8BIT, 0x371a, 0x1c},
+	{OV12870_8BIT, 0x371b, 0x05},
+	{OV12870_8BIT, 0x371c, 0x01},
+	{OV12870_8BIT, 0x371e, 0xa1},
+	{OV12870_8BIT, 0x371f, 0x0c},
+	{OV12870_8BIT, 0x3721, 0x00},
+	{OV12870_8BIT, 0x3724, 0x10},
+	{OV12870_8BIT, 0x3726, 0x00},
+	{OV12870_8BIT, 0x372a, 0x01},
+	{OV12870_8BIT, 0x3730, 0x10},
+	{OV12870_8BIT, 0x3738, 0x22},
+	{OV12870_8BIT, 0x3739, 0xe5},
+	{OV12870_8BIT, 0x373a, 0x50},
+	{OV12870_8BIT, 0x373b, 0x02},
+	{OV12870_8BIT, 0x373c, 0x41},
+	{OV12870_8BIT, 0x373f, 0x02},
+	{OV12870_8BIT, 0x3740, 0x42},
+	{OV12870_8BIT, 0x3741, 0x02},
+	{OV12870_8BIT, 0x3742, 0x18},
+	{OV12870_8BIT, 0x3743, 0x01},
+	{OV12870_8BIT, 0x3744, 0x02},
+	{OV12870_8BIT, 0x3747, 0x10},
+	{OV12870_8BIT, 0x374c, 0x04},
+	{OV12870_8BIT, 0x3751, 0xf0},
+	{OV12870_8BIT, 0x3752, 0x00},
+	{OV12870_8BIT, 0x3753, 0x00},
+	{OV12870_8BIT, 0x3754, 0xc0},
+	{OV12870_8BIT, 0x3755, 0x00},
+	{OV12870_8BIT, 0x3756, 0x1a},
+	{OV12870_8BIT, 0x3758, 0x00},
+	{OV12870_8BIT, 0x3759, 0x0f},
+	{OV12870_8BIT, 0x376b, 0x44},
+	{OV12870_8BIT, 0x375c, 0x04},
+	{OV12870_8BIT, 0x3774, 0x10},
+	{OV12870_8BIT, 0x3776, 0x00},
+	{OV12870_8BIT, 0x377f, 0x08},
+	{OV12870_8BIT, 0x3780, 0x22},
+	{OV12870_8BIT, 0x3781, 0x0c},
+	{OV12870_8BIT, 0x3784, 0x2c},
+	{OV12870_8BIT, 0x3785, 0x1e},
+	{OV12870_8BIT, 0x378f, 0xf5},
+	{OV12870_8BIT, 0x3791, 0xb0},
+	{OV12870_8BIT, 0x3795, 0x00},
+	{OV12870_8BIT, 0x3796, 0x64},
+	{OV12870_8BIT, 0x3797, 0x11},
+	{OV12870_8BIT, 0x3798, 0x30},
+	{OV12870_8BIT, 0x3799, 0x41},
+	{OV12870_8BIT, 0x379a, 0x07},
+	{OV12870_8BIT, 0x379b, 0xb0},
+	{OV12870_8BIT, 0x379c, 0x0c},
+	{OV12870_8BIT, 0x37c5, 0x00},
+	{OV12870_8BIT, 0x37c6, 0x00},
+	{OV12870_8BIT, 0x37c7, 0x00},
+	{OV12870_8BIT, 0x37c9, 0x00},
+	{OV12870_8BIT, 0x37ca, 0x00},
+	{OV12870_8BIT, 0x37cb, 0x00},
+	{OV12870_8BIT, 0x37de, 0x00},
+	{OV12870_8BIT, 0x37df, 0x00},
+	{OV12870_8BIT, 0x3800, 0x00},
+	{OV12870_8BIT, 0x3801, 0x00},
+	{OV12870_8BIT, 0x3802, 0x00},
+	{OV12870_8BIT, 0x3804, 0x0a},
+	{OV12870_8BIT, 0x3805, 0x3f},
+	{OV12870_8BIT, 0x3810, 0x00},
+	{OV12870_8BIT, 0x3812, 0x00},
+	{OV12870_8BIT, 0x3823, 0x00},
+	{OV12870_8BIT, 0x3824, 0x00},
+	{OV12870_8BIT, 0x3825, 0x00},
+	{OV12870_8BIT, 0x3826, 0x00},
+	{OV12870_8BIT, 0x3827, 0x00},
+	{OV12870_8BIT, 0x382a, 0x04},
+	{OV12870_8BIT, 0x3a04, 0x06},
+	{OV12870_8BIT, 0x3a05, 0x14},
+	{OV12870_8BIT, 0x3a06, 0x00},
+	{OV12870_8BIT, 0x3a07, 0xfe},
+	{OV12870_8BIT, 0x3b00, 0x00},
+	{OV12870_8BIT, 0x3b02, 0x00},
+	{OV12870_8BIT, 0x3b03, 0x00},
+	{OV12870_8BIT, 0x3b04, 0x00},
+	{OV12870_8BIT, 0x3b05, 0x00},
+	{OV12870_8BIT, 0x3e07, 0x20},
+	{OV12870_8BIT, 0x4000, 0x08},
+	{OV12870_8BIT, 0x4001, 0x04},
+	{OV12870_8BIT, 0x4002, 0x45},
+	{OV12870_8BIT, 0x4004, 0x08},
+	{OV12870_8BIT, 0x4005, 0x18},
+	{OV12870_8BIT, 0x4006, 0x20},
+	{OV12870_8BIT, 0x4008, 0x24},
+	{OV12870_8BIT, 0x4009, 0x10},
+	{OV12870_8BIT, 0x400c, 0x00},
+	{OV12870_8BIT, 0x400d, 0x00},
+	{OV12870_8BIT, 0x4058, 0x00},
+	{OV12870_8BIT, 0x404e, 0x37},
+	{OV12870_8BIT, 0x404f, 0x8f},
+	{OV12870_8BIT, 0x4058, 0x00},
+	{OV12870_8BIT, 0x4101, 0xb2},
+	{OV12870_8BIT, 0x4303, 0x00},
+	{OV12870_8BIT, 0x4304, 0x08},
+	{OV12870_8BIT, 0x4307, 0x31},
+	{OV12870_8BIT, 0x4311, 0x04},
+	{OV12870_8BIT, 0x4315, 0x01},
+	{OV12870_8BIT, 0x4511, 0x05},
+	{OV12870_8BIT, 0x4512, 0x01},
+	{OV12870_8BIT, 0x4806, 0x00},
+	{OV12870_8BIT, 0x4816, 0x52},
+	{OV12870_8BIT, 0x481f, 0x30},
+	{OV12870_8BIT, 0x4826, 0x2c},
+	{OV12870_8BIT, 0x4831, 0x64},
+	{OV12870_8BIT, 0x4d00, 0x04},
+	{OV12870_8BIT, 0x4d01, 0x71},
+	{OV12870_8BIT, 0x4d02, 0xfd},
+	{OV12870_8BIT, 0x4d03, 0xf5},
+	{OV12870_8BIT, 0x4d04, 0x0c},
+	{OV12870_8BIT, 0x4d05, 0xcc},
+	{OV12870_8BIT, 0x4837, 0x0a},
+	{OV12870_8BIT, 0x5000, 0x06},
+	{OV12870_8BIT, 0x5001, 0x01},
+	{OV12870_8BIT, 0x5003, 0x20},
+	{OV12870_8BIT, 0x5046, 0x0a},
+	{OV12870_8BIT, 0x5013, 0x00},
+	{OV12870_8BIT, 0x5046, 0x0a},
+	{OV12870_8BIT, 0x5780, 0x1c},
+	{OV12870_8BIT, 0x5786, 0x20},
+	{OV12870_8BIT, 0x5787, 0x10},
+	{OV12870_8BIT, 0x5788, 0x18},
+	{OV12870_8BIT, 0x578a, 0x04},
+	{OV12870_8BIT, 0x578b, 0x02},
+	{OV12870_8BIT, 0x578c, 0x02},
+	{OV12870_8BIT, 0x578e, 0x06},
+	{OV12870_8BIT, 0x578f, 0x02},
+	{OV12870_8BIT, 0x5790, 0x02},
+	{OV12870_8BIT, 0x5791, 0xff},
+	{OV12870_8BIT, 0x5842, 0x01},
+	{OV12870_8BIT, 0x5843, 0x2b},
+	{OV12870_8BIT, 0x5844, 0x01},
+	{OV12870_8BIT, 0x5845, 0x92},
+	{OV12870_8BIT, 0x5846, 0x01},
+	{OV12870_8BIT, 0x5847, 0x8f},
+	{OV12870_8BIT, 0x5848, 0x01},
+	{OV12870_8BIT, 0x5849, 0x0c},
+	{OV12870_8BIT, 0x5e00, 0x00},
+	{OV12870_8BIT, 0x5e10, 0x0c},
+	{OV12870_8BIT, 0x0100, 0x00},
+	{OV12870_TOK_TERM, 0, 0}
+};
+
+/*
+ * 654x496 30fps 17ms VBlanking 2lane 10Bit (Scaling)
+ */
+static struct ov12870_reg const ov12870_654x496[] = {
+	{OV12870_8BIT, 0x3501, 0x3d},
+	{OV12870_8BIT, 0x3502, 0x00},
+	{OV12870_8BIT, 0x3708, 0xe6},
+	{OV12870_8BIT, 0x3709, 0xc7},
+	{OV12870_8BIT, 0x3803, 0x00},
+	{OV12870_8BIT, 0x3806, 0x07},
+	{OV12870_8BIT, 0x3807, 0xa3},
+	{OV12870_8BIT, 0x3808, 0x02},
+	{OV12870_8BIT, 0x3809, 0x90},
+	{OV12870_8BIT, 0x380a, 0x01},
+	{OV12870_8BIT, 0x380b, 0xf0},
+	{OV12870_8BIT, 0x380c, 0x0a},
+	{OV12870_8BIT, 0x380d, 0x80},
+	{OV12870_8BIT, 0x380e, 0x07},
+	{OV12870_8BIT, 0x380f, 0xc0},
+	{OV12870_8BIT, 0x3811, 0x08},
+	{OV12870_8BIT, 0x3813, 0x02},
+	{OV12870_8BIT, 0x3814, 0x31},
+	{OV12870_8BIT, 0x3815, 0x31},
+	{OV12870_8BIT, 0x3820, 0x04},
+	{OV12870_8BIT, 0x3821, 0x1f},
+	{OV12870_8BIT, 0x5002, 0x80},
+	{OV12870_8BIT, 0x0100, 0x01},
+	{OV12870_TOK_TERM, 0, 0}
+};
+
+/*
+ * 1296x976 30fps 17ms VBlanking 2lane 10Bit (Scaling)
+*DS from 2592x1952
+*/
+static struct ov12870_reg const ov12870_1296x976[] = {
+	{OV12870_8BIT, 0x3501, 0x7b},
+	{OV12870_8BIT, 0x3502, 0x00},
+	{OV12870_8BIT, 0x3708, 0xe2},
+	{OV12870_8BIT, 0x3709, 0xc3},
+
+	{OV12870_8BIT, 0x3800, 0x00},
+	{OV12870_8BIT, 0x3801, 0x00},
+	{OV12870_8BIT, 0x3802, 0x00},
+	{OV12870_8BIT, 0x3803, 0x00},
+
+	{OV12870_8BIT, 0x3804, 0x0a},
+	{OV12870_8BIT, 0x3805, 0x3f},
+	{OV12870_8BIT, 0x3806, 0x07},
+	{OV12870_8BIT, 0x3807, 0xA3},
+
+	{OV12870_8BIT, 0x3808, 0x05},
+	{OV12870_8BIT, 0x3809, 0x10},
+	{OV12870_8BIT, 0x380a, 0x03},
+	{OV12870_8BIT, 0x380b, 0xD0},
+
+	{OV12870_8BIT, 0x380c, 0x0a},
+	{OV12870_8BIT, 0x380d, 0x80},
+	{OV12870_8BIT, 0x380e, 0x07},
+	{OV12870_8BIT, 0x380f, 0xc0},
+
+	{OV12870_8BIT, 0x3810, 0x00},
+	{OV12870_8BIT, 0x3811, 0x10},
+	{OV12870_8BIT, 0x3812, 0x00},
+	{OV12870_8BIT, 0x3813, 0x02},
+
+	{OV12870_8BIT, 0x3814, 0x11},	/*X subsample control*/
+	{OV12870_8BIT, 0x3815, 0x11},	/*Y subsample control*/
+	{OV12870_8BIT, 0x3820, 0x00},
+	{OV12870_8BIT, 0x3821, 0x1e},
+	{OV12870_8BIT, 0x5002, 0x00},
+	{OV12870_8BIT, 0x5041, 0x84}, /* scale is auto enabled */
+	{OV12870_8BIT, 0x0100, 0x01},
+	{OV12870_TOK_TERM, 0, 0}
+
+};
+
+
+/*
+ * 336x256 30fps 17ms VBlanking 2lane 10Bit (Scaling)
+ DS from 2564x1956
+ */
+static struct ov12870_reg const ov12870_336x256[] = {
+	{OV12870_8BIT, 0x3501, 0x3d},
+	{OV12870_8BIT, 0x3502, 0x00},
+	{OV12870_8BIT, 0x3708, 0xe6},
+	{OV12870_8BIT, 0x3709, 0xc7},
+	{OV12870_8BIT, 0x3806, 0x07},
+	{OV12870_8BIT, 0x3807, 0xa3},
+	{OV12870_8BIT, 0x3808, 0x01},
+	{OV12870_8BIT, 0x3809, 0x50},
+	{OV12870_8BIT, 0x380a, 0x01},
+	{OV12870_8BIT, 0x380b, 0x00},
+	{OV12870_8BIT, 0x380c, 0x0a},
+	{OV12870_8BIT, 0x380d, 0x80},
+	{OV12870_8BIT, 0x380e, 0x07},
+	{OV12870_8BIT, 0x380f, 0xc0},
+	{OV12870_8BIT, 0x3811, 0x1E},
+	{OV12870_8BIT, 0x3814, 0x31},
+	{OV12870_8BIT, 0x3815, 0x31},
+	{OV12870_8BIT, 0x3820, 0x04},
+	{OV12870_8BIT, 0x3821, 0x1f},
+	{OV12870_8BIT, 0x5002, 0x80},
+	{OV12870_8BIT, 0x0100, 0x01},
+	{OV12870_TOK_TERM, 0, 0}
+};
+
+/*
+ * 336x256 30fps 17ms VBlanking 2lane 10Bit (Scaling)
+ DS from 2368x1956
+ */
+static struct ov12870_reg const ov12870_368x304[] = {
+	{OV12870_8BIT, 0x3501, 0x3d},
+	{OV12870_8BIT, 0x3502, 0x00},
+	{OV12870_8BIT, 0x3708, 0xe6},
+	{OV12870_8BIT, 0x3709, 0xc7},
+	{OV12870_8BIT, 0x3808, 0x01},
+	{OV12870_8BIT, 0x3809, 0x70},
+	{OV12870_8BIT, 0x380a, 0x01},
+	{OV12870_8BIT, 0x380b, 0x30},
+	{OV12870_8BIT, 0x380c, 0x0a},
+	{OV12870_8BIT, 0x380d, 0x80},
+	{OV12870_8BIT, 0x380e, 0x07},
+	{OV12870_8BIT, 0x380f, 0xc0},
+	{OV12870_8BIT, 0x3811, 0x80},
+	{OV12870_8BIT, 0x3814, 0x31},
+	{OV12870_8BIT, 0x3815, 0x31},
+	{OV12870_8BIT, 0x3820, 0x04},
+	{OV12870_8BIT, 0x3821, 0x1f},
+	{OV12870_8BIT, 0x5002, 0x80},
+	{OV12870_8BIT, 0x0100, 0x01},
+	{OV12870_TOK_TERM, 0, 0}
+};
+
+/*
+ * ov12870_192x160 30fps 17ms VBlanking 2lane 10Bit (Scaling)
+ DS from 2460x1956
+ */
+static struct ov12870_reg const ov12870_192x160[] = {
+	{OV12870_8BIT, 0x3501, 0x7b},
+	{OV12870_8BIT, 0x3502, 0x80},
+	{OV12870_8BIT, 0x3708, 0xe2},
+	{OV12870_8BIT, 0x3709, 0xc3},
+	{OV12870_8BIT, 0x3804, 0x0a},
+	{OV12870_8BIT, 0x3805, 0x3f},
+	{OV12870_8BIT, 0x3806, 0x07},
+	{OV12870_8BIT, 0x3807, 0xA3},
+	{OV12870_8BIT, 0x3808, 0x00},
+	{OV12870_8BIT, 0x3809, 0xC0},
+	{OV12870_8BIT, 0x380a, 0x00},
+	{OV12870_8BIT, 0x380b, 0xA0},
+	{OV12870_8BIT, 0x380c, 0x0a},
+	{OV12870_8BIT, 0x380d, 0x80},
+	{OV12870_8BIT, 0x380e, 0x07},
+	{OV12870_8BIT, 0x380f, 0xc0},
+	{OV12870_8BIT, 0x3811, 0x40},
+	{OV12870_8BIT, 0x3813, 0x00},
+	{OV12870_8BIT, 0x3814, 0x31},
+	{OV12870_8BIT, 0x3815, 0x31},
+	{OV12870_8BIT, 0x3820, 0x04},
+	{OV12870_8BIT, 0x3821, 0x1f},
+	{OV12870_8BIT, 0x5002, 0x80},
+	{OV12870_8BIT, 0x0100, 0x01},
+	{OV12870_TOK_TERM, 0, 0}
+};
+
+
+static struct ov12870_reg const ov12870_736x496[] = {
+	{OV12870_8BIT, 0x3501, 0x3d},
+	{OV12870_8BIT, 0x3502, 0x00},
+	{OV12870_8BIT, 0x3708, 0xe6},
+	{OV12870_8BIT, 0x3709, 0xc7},
+	{OV12870_8BIT, 0x3803, 0x68},
+	{OV12870_8BIT, 0x3806, 0x07},
+	{OV12870_8BIT, 0x3807, 0x3b},
+	{OV12870_8BIT, 0x3808, 0x02},
+	{OV12870_8BIT, 0x3809, 0xe0},
+	{OV12870_8BIT, 0x380a, 0x01},
+	{OV12870_8BIT, 0x380b, 0xf0},
+	{OV12870_8BIT, 0x380c, 0x0a}, /*hts*/
+	{OV12870_8BIT, 0x380d, 0x80},
+	{OV12870_8BIT, 0x380e, 0x07}, /*vts*/
+	{OV12870_8BIT, 0x380f, 0xc0},
+	{OV12870_8BIT, 0x3811, 0x08},
+	{OV12870_8BIT, 0x3813, 0x02},
+	{OV12870_8BIT, 0x3814, 0x31},
+	{OV12870_8BIT, 0x3815, 0x31},
+	{OV12870_8BIT, 0x3820, 0x04},
+	{OV12870_8BIT, 0x3821, 0x1f},
+	{OV12870_8BIT, 0x5002, 0x80},
+	{OV12870_8BIT, 0x0100, 0x01},
+	{OV12870_TOK_TERM, 0, 0}
+};
+
+/*
+static struct ov12870_reg const ov12870_736x496[] = {
+	{OV12870_8BIT, 0x3501, 0x7b},
+	{OV12870_8BIT, 0x3502, 0x00},
+	{OV12870_8BIT, 0x3708, 0xe6},
+	{OV12870_8BIT, 0x3709, 0xc3},
+	{OV12870_8BIT, 0x3803, 0x00},
+	{OV12870_8BIT, 0x3806, 0x07},
+	{OV12870_8BIT, 0x3807, 0xa3},
+	{OV12870_8BIT, 0x3808, 0x02},
+	{OV12870_8BIT, 0x3809, 0xe0},
+	{OV12870_8BIT, 0x380a, 0x01},
+	{OV12870_8BIT, 0x380b, 0xf0},
+	{OV12870_8BIT, 0x380c, 0x0d},
+	{OV12870_8BIT, 0x380d, 0xb0},
+	{OV12870_8BIT, 0x380e, 0x05},
+	{OV12870_8BIT, 0x380f, 0xf2},
+	{OV12870_8BIT, 0x3811, 0x08},
+	{OV12870_8BIT, 0x3813, 0x02},
+	{OV12870_8BIT, 0x3814, 0x31},
+	{OV12870_8BIT, 0x3815, 0x31},
+	{OV12870_8BIT, 0x3820, 0x01},
+	{OV12870_8BIT, 0x3821, 0x1f},
+	{OV12870_8BIT, 0x5002, 0x00},
+	{OV12870_8BIT, 0x0100, 0x01},
+	{OV12870_TOK_TERM, 0, 0}
+};
+*/
+/*
+ * 976x556 30fps 8.8ms VBlanking 2lane 10Bit (Scaling)
+ */
+static struct ov12870_reg const ov12870_976x556[] = {
+	{OV12870_8BIT, 0x3501, 0x7b},
+	{OV12870_8BIT, 0x3502, 0x00},
+	{OV12870_8BIT, 0x3708, 0xe2},
+	{OV12870_8BIT, 0x3709, 0xc3},
+	{OV12870_8BIT, 0x3803, 0xf0},
+	{OV12870_8BIT, 0x3806, 0x06},
+	{OV12870_8BIT, 0x3807, 0xa7},
+	{OV12870_8BIT, 0x3808, 0x03},
+	{OV12870_8BIT, 0x3809, 0xd0},
+	{OV12870_8BIT, 0x380a, 0x02},
+	{OV12870_8BIT, 0x380b, 0x2C},
+	{OV12870_8BIT, 0x380c, 0x0a},
+	{OV12870_8BIT, 0x380d, 0x80},
+	{OV12870_8BIT, 0x380e, 0x07},
+	{OV12870_8BIT, 0x380f, 0xc0},
+	{OV12870_8BIT, 0x3811, 0x10},
+	{OV12870_8BIT, 0x3813, 0x02},
+	{OV12870_8BIT, 0x3814, 0x11},
+	{OV12870_8BIT, 0x3815, 0x11},
+	{OV12870_8BIT, 0x3820, 0x00},
+	{OV12870_8BIT, 0x3821, 0x1e},
+	{OV12870_8BIT, 0x5002, 0x80},
+	{OV12870_8BIT, 0x0100, 0x01},
+	{OV12870_TOK_TERM, 0, 0}
+};
+
+/*DS from 2624x1492*/
+static struct ov12870_reg const ov12870_1296x736[] = {
+	{OV12870_8BIT, 0x3501, 0x7b},
+	{OV12870_8BIT, 0x3502, 0x00},
+	{OV12870_8BIT, 0x3708, 0xe2},
+	{OV12870_8BIT, 0x3709, 0xc3},
+
+	{OV12870_8BIT, 0x3800, 0x00},
+	{OV12870_8BIT, 0x3801, 0x00},
+	{OV12870_8BIT, 0x3802, 0x00},
+	{OV12870_8BIT, 0x3803, 0x00},
+
+	{OV12870_8BIT, 0x3804, 0x0a},
+	{OV12870_8BIT, 0x3805, 0x3f},
+	{OV12870_8BIT, 0x3806, 0x07},
+	{OV12870_8BIT, 0x3807, 0xA3},
+
+	{OV12870_8BIT, 0x3808, 0x05},
+	{OV12870_8BIT, 0x3809, 0x10},
+	{OV12870_8BIT, 0x380a, 0x02},
+	{OV12870_8BIT, 0x380b, 0xe0},
+
+	{OV12870_8BIT, 0x380c, 0x0a},
+	{OV12870_8BIT, 0x380d, 0x80},
+	{OV12870_8BIT, 0x380e, 0x07},
+	{OV12870_8BIT, 0x380f, 0xc0},
+
+	{OV12870_8BIT, 0x3813, 0xE8},
+
+	{OV12870_8BIT, 0x3814, 0x11},	/*X subsample control*/
+	{OV12870_8BIT, 0x3815, 0x11},	/*Y subsample control*/
+	{OV12870_8BIT, 0x3820, 0x00},
+	{OV12870_8BIT, 0x3821, 0x1e},
+	{OV12870_8BIT, 0x5002, 0x00},
+	{OV12870_8BIT, 0x5041, 0x84}, /* scale is auto enabled */
+	{OV12870_8BIT, 0x0100, 0x01},
+	{OV12870_TOK_TERM, 0, 0}
+};
+
+static struct ov12870_reg const ov12870_1636p_30fps[] = {
+	{OV12870_8BIT, 0x3501, 0x7b},
+	{OV12870_8BIT, 0x3502, 0x00},
+	{OV12870_8BIT, 0x3708, 0xe2},
+	{OV12870_8BIT, 0x3709, 0xc3},
+	{OV12870_8BIT, 0x3803, 0xf0},
+	{OV12870_8BIT, 0x3806, 0x06},
+	{OV12870_8BIT, 0x3807, 0xa7},
+	{OV12870_8BIT, 0x3808, 0x06},
+	{OV12870_8BIT, 0x3809, 0x64},
+	{OV12870_8BIT, 0x380a, 0x04},
+	{OV12870_8BIT, 0x380b, 0x48},
+	{OV12870_8BIT, 0x380c, 0x0a}, /*hts*/
+	{OV12870_8BIT, 0x380d, 0x80},
+	{OV12870_8BIT, 0x380e, 0x07}, /*vts*/
+	{OV12870_8BIT, 0x380f, 0xc0},
+	{OV12870_8BIT, 0x3811, 0x02},
+	{OV12870_8BIT, 0x3813, 0x02},
+	{OV12870_8BIT, 0x3814, 0x11},
+	{OV12870_8BIT, 0x3815, 0x11},
+	{OV12870_8BIT, 0x3820, 0x00},
+	{OV12870_8BIT, 0x3821, 0x1e},
+	{OV12870_8BIT, 0x5002, 0x80},
+	{OV12870_8BIT, 0x0100, 0x01},
+	{OV12870_TOK_TERM, 0, 0}
+};
+
+static struct ov12870_reg const ov12870_1616x1216_30fps[] = {
+	{OV12870_8BIT, 0x3501, 0x7b},
+	{OV12870_8BIT, 0x3502, 0x80},
+	{OV12870_8BIT, 0x3708, 0xe2},
+	{OV12870_8BIT, 0x3709, 0xc3},
+	{OV12870_8BIT, 0x3800, 0x00},	/*{3800,3801} Array X start*/
+	{OV12870_8BIT, 0x3801, 0x08},	/* 04 //{3800,3801} Array X start*/
+	{OV12870_8BIT, 0x3802, 0x00},	/*{3802,3803} Array Y start*/
+	{OV12870_8BIT, 0x3803, 0x04},	/* 00  //{3802,3803} Array Y start*/
+	{OV12870_8BIT, 0x3804, 0x0a},	/*{3804,3805} Array X end*/
+	{OV12870_8BIT, 0x3805, 0x37},	/* 3b  //{3804,3805} Array X end*/
+	{OV12870_8BIT, 0x3806, 0x07},	/*{3806,3807} Array Y end*/
+	{OV12870_8BIT, 0x3807, 0x9f},	/* a3  //{3806,3807} Array Y end*/
+	{OV12870_8BIT, 0x3808, 0x06},	/*{3808,3809} Final output H size*/
+	{OV12870_8BIT, 0x3809, 0x50},	/*{3808,3809} Final output H size*/
+	{OV12870_8BIT, 0x380a, 0x04},	/*{380a,380b} Final output V size*/
+	{OV12870_8BIT, 0x380b, 0xc0},	/*{380a,380b} Final output V size*/
+	{OV12870_8BIT, 0x380c, 0x0a},	/*{380c,380d} HTS*/
+	{OV12870_8BIT, 0x380d, 0x80},	/*{380c,380d} HTS*/
+	{OV12870_8BIT, 0x380e, 0x07},	/*{380e,380f} VTS*/
+	{OV12870_8BIT, 0x380f, 0xc0},	/* bc	//{380e,380f} VTS*/
+	{OV12870_8BIT, 0x3810, 0x00},	/*{3810,3811} windowing X offset*/
+	{OV12870_8BIT, 0x3811, 0x10},	/*{3810,3811} windowing X offset*/
+	{OV12870_8BIT, 0x3812, 0x00},	/*{3812,3813} windowing Y offset*/
+	{OV12870_8BIT, 0x3813, 0x06},	/*{3812,3813} windowing Y offset*/
+	{OV12870_8BIT, 0x3814, 0x11},	/*X subsample control*/
+	{OV12870_8BIT, 0x3815, 0x11},	/*Y subsample control*/
+	{OV12870_8BIT, 0x3820, 0x00},	/*FLIP/Binnning control*/
+	{OV12870_8BIT, 0x3821, 0x1e},	/*MIRROR control*/
+	{OV12870_8BIT, 0x5002, 0x00},
+	{OV12870_8BIT, 0x5041, 0x84},
+	{OV12870_8BIT, 0x0100, 0x01},
+	{OV12870_TOK_TERM, 0, 0}
+};
+
+
+/*
+ * 1940x1096 30fps 8.8ms VBlanking 2lane 10bit (Scaling)
+ */
+static struct ov12870_reg const ov12870_1940x1096[] = {
+	{OV12870_8BIT, 0x3501, 0x7b},
+	{OV12870_8BIT, 0x3502, 0x00},
+	{OV12870_8BIT, 0x3708, 0xe2},
+	{OV12870_8BIT, 0x3709, 0xc3},
+	{OV12870_8BIT, 0x3803, 0xf0},
+	{OV12870_8BIT, 0x3806, 0x06},
+	{OV12870_8BIT, 0x3807, 0xa7},
+	{OV12870_8BIT, 0x3808, 0x07},
+	{OV12870_8BIT, 0x3809, 0x94},
+	{OV12870_8BIT, 0x380a, 0x04},
+	{OV12870_8BIT, 0x380b, 0x48},
+	{OV12870_8BIT, 0x380c, 0x0a},
+	{OV12870_8BIT, 0x380d, 0x80},
+	{OV12870_8BIT, 0x380e, 0x07},
+	{OV12870_8BIT, 0x380f, 0xc0},
+	{OV12870_8BIT, 0x3811, 0x02},
+	{OV12870_8BIT, 0x3813, 0x02},
+	{OV12870_8BIT, 0x3814, 0x11},
+	{OV12870_8BIT, 0x3815, 0x11},
+	{OV12870_8BIT, 0x3820, 0x00},
+	{OV12870_8BIT, 0x3821, 0x1e},
+	{OV12870_8BIT, 0x5002, 0x80},
+	{OV12870_8BIT, 0x0100, 0x01},
+	{OV12870_TOK_TERM, 0, 0}
+};
+
+static struct ov12870_reg const ov12870_2592x1456_30fps[] = {
+	{OV12870_8BIT, 0x3501, 0x7b},
+	{OV12870_8BIT, 0x3502, 0x00},
+	{OV12870_8BIT, 0x3708, 0xe2},
+	{OV12870_8BIT, 0x3709, 0xc3},
+	{OV12870_8BIT, 0x3800, 0x00},
+	{OV12870_8BIT, 0x3801, 0x00},
+	{OV12870_8BIT, 0x3802, 0x00},
+	{OV12870_8BIT, 0x3803, 0xf0},
+	{OV12870_8BIT, 0x3804, 0x0a},
+	{OV12870_8BIT, 0x3805, 0x3f},
+	{OV12870_8BIT, 0x3806, 0x06},
+	{OV12870_8BIT, 0x3807, 0xa4},
+	{OV12870_8BIT, 0x3808, 0x0a},
+	{OV12870_8BIT, 0x3809, 0x20},
+	{OV12870_8BIT, 0x380a, 0x05},
+	{OV12870_8BIT, 0x380b, 0xb0},
+	{OV12870_8BIT, 0x380c, 0x0a},
+	{OV12870_8BIT, 0x380d, 0x80},
+	{OV12870_8BIT, 0x380e, 0x07},
+	{OV12870_8BIT, 0x380f, 0xc0},
+	{OV12870_8BIT, 0x3811, 0x10},
+	{OV12870_8BIT, 0x3813, 0x00},
+	{OV12870_8BIT, 0x3814, 0x11},
+	{OV12870_8BIT, 0x3815, 0x11},
+	{OV12870_8BIT, 0x3820, 0x00},
+	{OV12870_8BIT, 0x3821, 0x1e},
+	{OV12870_8BIT, 0x5002, 0x00},
+	{OV12870_TOK_TERM, 0, 0}
+};
+
+static struct ov12870_reg const ov12870_2576x1456_30fps[] = {
+	{OV12870_8BIT, 0x3501, 0x7b},
+	{OV12870_8BIT, 0x3502, 0x00},
+	{OV12870_8BIT, 0x3708, 0xe2},
+	{OV12870_8BIT, 0x3709, 0xc3},
+	{OV12870_8BIT, 0x3800, 0x00},
+	{OV12870_8BIT, 0x3801, 0x00},
+	{OV12870_8BIT, 0x3802, 0x00},
+	{OV12870_8BIT, 0x3803, 0xf0},
+	{OV12870_8BIT, 0x3804, 0x0a},
+	{OV12870_8BIT, 0x3805, 0x3f},
+	{OV12870_8BIT, 0x3806, 0x06},
+	{OV12870_8BIT, 0x3807, 0xa4},
+	{OV12870_8BIT, 0x3808, 0x0a},
+	{OV12870_8BIT, 0x3809, 0x10},
+	{OV12870_8BIT, 0x380a, 0x05},
+	{OV12870_8BIT, 0x380b, 0xb0},
+	{OV12870_8BIT, 0x380c, 0x0a},
+	{OV12870_8BIT, 0x380d, 0x80},
+	{OV12870_8BIT, 0x380e, 0x07},
+	{OV12870_8BIT, 0x380f, 0xc0},
+	{OV12870_8BIT, 0x3811, 0x18},
+	{OV12870_8BIT, 0x3813, 0x00},
+	{OV12870_8BIT, 0x3814, 0x11},
+	{OV12870_8BIT, 0x3815, 0x11},
+	{OV12870_8BIT, 0x3820, 0x00},
+	{OV12870_8BIT, 0x3821, 0x1e},
+	{OV12870_8BIT, 0x5002, 0x00},
+	{OV12870_TOK_TERM, 0, 0}
+};
+
+/*
+ * 2592x1944 30fps 0.6ms VBlanking 2lane 10Bit
+ */
+static struct ov12870_reg const ov12870_2592x1944_30fps[] = {
+	{OV12870_8BIT, 0x3501, 0x7b},
+	{OV12870_8BIT, 0x3502, 0x00},
+	{OV12870_8BIT, 0x3708, 0xe2},
+	{OV12870_8BIT, 0x3709, 0xc3},
+	{OV12870_8BIT, 0x3803, 0x00},
+	{OV12870_8BIT, 0x3806, 0x07},
+	{OV12870_8BIT, 0x3807, 0xa3},
+	{OV12870_8BIT, 0x3808, 0x0a},
+	{OV12870_8BIT, 0x3809, 0x20},
+	{OV12870_8BIT, 0x380a, 0x07},
+	{OV12870_8BIT, 0x380b, 0x98},
+	{OV12870_8BIT, 0x380c, 0x0a},
+	{OV12870_8BIT, 0x380d, 0x80},
+	{OV12870_8BIT, 0x380e, 0x07},
+	{OV12870_8BIT, 0x380f, 0xc0},
+	{OV12870_8BIT, 0x3811, 0x10},
+	{OV12870_8BIT, 0x3813, 0x00},
+	{OV12870_8BIT, 0x3814, 0x11},
+	{OV12870_8BIT, 0x3815, 0x11},
+	{OV12870_8BIT, 0x3820, 0x00},
+	{OV12870_8BIT, 0x3821, 0x1e},
+	{OV12870_8BIT, 0x5002, 0x00},
+	{OV12870_8BIT, 0x0100, 0x01},
+	{OV12870_TOK_TERM, 0, 0}
+};
+
+/*
+ * 11:9 Full FOV Output, expected FOV Res: 2346x1920
+ * ISP Effect Res: 1408x1152
+ * Sensor out: 1424x1168, DS From: 2380x1952
+ *
+ * WA: Left Offset: 8, Hor scal: 64
+ */
+static struct ov12870_reg const ov12870_1424x1168_30fps[] = {
+	{OV12870_8BIT, 0x3501, 0x3b}, /* long exposure[15:8] */
+	{OV12870_8BIT, 0x3502, 0x80}, /* long exposure[7:0] */
+	{OV12870_8BIT, 0x3708, 0xe2},
+	{OV12870_8BIT, 0x3709, 0xc3},
+	{OV12870_8BIT, 0x3800, 0x00}, /* TIMING_X_ADDR_START */
+	{OV12870_8BIT, 0x3801, 0x50}, /* 80 */
+	{OV12870_8BIT, 0x3802, 0x00}, /* TIMING_Y_ADDR_START */
+	{OV12870_8BIT, 0x3803, 0x02}, /* 2 */
+	{OV12870_8BIT, 0x3804, 0x09}, /* TIMING_X_ADDR_END */
+	{OV12870_8BIT, 0x3805, 0xdd}, /* 2525 */
+	{OV12870_8BIT, 0x3806, 0x07}, /* TIMING_Y_ADDR_END */
+	{OV12870_8BIT, 0x3807, 0xa1}, /* 1953 */
+	{OV12870_8BIT, 0x3808, 0x05}, /* TIMING_X_OUTPUT_SIZE */
+	{OV12870_8BIT, 0x3809, 0x90}, /* 1424 */
+	{OV12870_8BIT, 0x380a, 0x04}, /* TIMING_Y_OUTPUT_SIZE */
+	{OV12870_8BIT, 0x380b, 0x90}, /* 1168 */
+	{OV12870_8BIT, 0x380c, 0x0a}, /* TIMING_HTS */
+	{OV12870_8BIT, 0x380d, 0x80},
+	{OV12870_8BIT, 0x380e, 0x07}, /* TIMING_VTS */
+	{OV12870_8BIT, 0x380f, 0xc0},
+	{OV12870_8BIT, 0x3810, 0x00}, /* TIMING_ISP_X_WIN */
+	{OV12870_8BIT, 0x3811, 0x02}, /* 2 */
+	{OV12870_8BIT, 0x3812, 0x00}, /* TIMING_ISP_Y_WIN */
+	{OV12870_8BIT, 0x3813, 0x00}, /* 0 */
+	{OV12870_8BIT, 0x3814, 0x11}, /* TIME_X_INC */
+	{OV12870_8BIT, 0x3815, 0x11}, /* TIME_Y_INC */
+	{OV12870_8BIT, 0x3820, 0x00},
+	{OV12870_8BIT, 0x3821, 0x1e},
+	{OV12870_8BIT, 0x5002, 0x00},
+	{OV12870_8BIT, 0x5041, 0x84}, /* scale is auto enabled */
+	{OV12870_8BIT, 0x0100, 0x01},
+	{OV12870_TOK_TERM, 0, 0}
+};
+
+/*
+ * 3:2 Full FOV Output, expected FOV Res: 2560x1706
+ * ISP Effect Res: 720x480
+ * Sensor out: 736x496, DS From 2616x1764
+ */
+static struct ov12870_reg const ov12870_736x496_30fps[] = {
+	{OV12870_8BIT, 0x3501, 0x3b}, /* long exposure[15:8] */
+	{OV12870_8BIT, 0x3502, 0x80}, /* long exposure[7:0] */
+	{OV12870_8BIT, 0x3708, 0xe2},
+	{OV12870_8BIT, 0x3709, 0xc3},
+	{OV12870_8BIT, 0x3800, 0x00}, /* TIMING_X_ADDR_START */
+	{OV12870_8BIT, 0x3801, 0x02}, /* 2 */
+	{OV12870_8BIT, 0x3802, 0x00}, /* TIMING_Y_ADDR_START */
+	{OV12870_8BIT, 0x3803, 0x62}, /* 98 */
+	{OV12870_8BIT, 0x3804, 0x0a}, /* TIMING_X_ADDR_END */
+	{OV12870_8BIT, 0x3805, 0x3b}, /* 2619 */
+	{OV12870_8BIT, 0x3806, 0x07}, /* TIMING_Y_ADDR_END */
+	{OV12870_8BIT, 0x3807, 0x43}, /* 1859 */
+	{OV12870_8BIT, 0x3808, 0x02}, /* TIMING_X_OUTPUT_SIZE */
+	{OV12870_8BIT, 0x3809, 0xe0}, /* 736 */
+	{OV12870_8BIT, 0x380a, 0x01}, /* TIMING_Y_OUTPUT_SIZE */
+	{OV12870_8BIT, 0x380b, 0xf0}, /* 496 */
+	{OV12870_8BIT, 0x380c, 0x0a}, /* TIMING_HTS */
+	{OV12870_8BIT, 0x380d, 0x80},
+	{OV12870_8BIT, 0x380e, 0x07}, /* TIMING_VTS */
+	{OV12870_8BIT, 0x380f, 0xc0},
+	{OV12870_8BIT, 0x3810, 0x00}, /* TIMING_ISP_X_WIN */
+	{OV12870_8BIT, 0x3811, 0x02}, /* 2 */
+	{OV12870_8BIT, 0x3812, 0x00}, /* TIMING_ISP_Y_WIN */
+	{OV12870_8BIT, 0x3813, 0x00}, /* 0 */
+	{OV12870_8BIT, 0x3814, 0x11}, /* TIME_X_INC */
+	{OV12870_8BIT, 0x3815, 0x11}, /* TIME_Y_INC */
+	{OV12870_8BIT, 0x3820, 0x00},
+	{OV12870_8BIT, 0x3821, 0x1e},
+	{OV12870_8BIT, 0x5002, 0x00},
+	{OV12870_8BIT, 0x5041, 0x84}, /* scale is auto enabled */
+	{OV12870_8BIT, 0x0100, 0x01},
+	{OV12870_TOK_TERM, 0, 0}
+};
+
+static struct ov12870_reg const ov12870_2576x1936_30fps[] = {
+	{OV12870_8BIT, 0x3501, 0x7b},
+	{OV12870_8BIT, 0x3502, 0x00},
+	{OV12870_8BIT, 0x3708, 0xe2},
+	{OV12870_8BIT, 0x3709, 0xc3},
+	{OV12870_8BIT, 0x3803, 0x00},
+	{OV12870_8BIT, 0x3806, 0x07},
+	{OV12870_8BIT, 0x3807, 0xa3},
+	{OV12870_8BIT, 0x3808, 0x0a},
+	{OV12870_8BIT, 0x3809, 0x10},
+	{OV12870_8BIT, 0x380a, 0x07},
+	{OV12870_8BIT, 0x380b, 0x90},
+	{OV12870_8BIT, 0x380c, 0x0a},
+	{OV12870_8BIT, 0x380d, 0x80},
+	{OV12870_8BIT, 0x380e, 0x07},
+	{OV12870_8BIT, 0x380f, 0xc0},
+	{OV12870_8BIT, 0x3811, 0x18},
+	{OV12870_8BIT, 0x3813, 0x00},
+	{OV12870_8BIT, 0x3814, 0x11},
+	{OV12870_8BIT, 0x3815, 0x11},
+	{OV12870_8BIT, 0x3820, 0x00},
+	{OV12870_8BIT, 0x3821, 0x1e},
+	{OV12870_8BIT, 0x5002, 0x00},
+	{OV12870_8BIT, 0x0100, 0x01},
+	{OV12870_TOK_TERM, 0, 0}
+};
+
+struct ov12870_resolution ov12870_res_preview[] = {
+	{
+		.desc = "ov12870_736x496_30fps",
+		.width = 736,
+		.height = 496,
+		.pix_clk_freq = 160,
+		.fps = 30,
+		.used = 0,
+		.pixels_per_line = 2688,
+		.lines_per_frame = 1984,
+		.bin_factor_x = 1,
+		.bin_factor_y = 1,
+		.bin_mode = 0,
+		.regs = ov12870_736x496_30fps,
+	},
+	{
+		.desc = "ov12870_1616x1216_30fps",
+		.width = 1616,
+		.height = 1216,
+		.pix_clk_freq = 160,
+		.fps = 30,
+		.used = 0,
+		.pixels_per_line = 2688,
+		.lines_per_frame = 1984,
+		.bin_factor_x = 1,
+		.bin_factor_y = 1,
+		.bin_mode = 0,
+		.regs = ov12870_1616x1216_30fps,
+	},
+	{
+		.desc = "ov12870_5M_30fps",
+		.width = 2576,
+		.height = 1456,
+		.pix_clk_freq = 160,
+		.fps = 30,
+		.used = 0,
+		.pixels_per_line = 2688,
+		.lines_per_frame = 1984,
+		.bin_factor_x = 1,
+		.bin_factor_y = 1,
+		.bin_mode = 0,
+		.regs = ov12870_2576x1456_30fps,
+	},
+	{
+		.desc = "ov12870_5M_30fps",
+		.width = 2576,
+		.height = 1936,
+		.pix_clk_freq = 160,
+		.fps = 30,
+		.used = 0,
+		.pixels_per_line = 2688,
+		.lines_per_frame = 1984,
+		.bin_factor_x = 1,
+		.bin_factor_y = 1,
+		.bin_mode = 0,
+		.regs = ov12870_2576x1936_30fps,
+	},
+};
+#define N_RES_PREVIEW (ARRAY_SIZE(ov12870_res_preview))
+
+struct ov12870_resolution ov12870_res_still[] = {
+	{
+		.desc = "ov12870_736x496_30fps",
+		.width = 736,
+		.height = 496,
+		.pix_clk_freq = 160,
+		.fps = 30,
+		.used = 0,
+		.pixels_per_line = 2688,
+		.lines_per_frame = 1984,
+		.bin_factor_x = 1,
+		.bin_factor_y = 1,
+		.bin_mode = 0,
+		.regs = ov12870_736x496_30fps,
+	},
+	{
+		.desc = "ov12870_1424x1168_30fps",
+		.width = 1424,
+		.height = 1168,
+		.pix_clk_freq = 160,
+		.fps = 30,
+		.used = 0,
+		.pixels_per_line = 2688,
+		.lines_per_frame = 1984,
+		.bin_factor_x = 1,
+		.bin_factor_y = 1,
+		.bin_mode = 0,
+		.regs = ov12870_1424x1168_30fps,
+	},
+	{
+		.desc = "ov12870_1616x1216_30fps",
+		.width = 1616,
+		.height = 1216,
+		.pix_clk_freq = 160,
+		.fps = 30,
+		.used = 0,
+		.pixels_per_line = 2688,
+		.lines_per_frame = 1984,
+		.bin_factor_x = 1,
+		.bin_factor_y = 1,
+		.bin_mode = 0,
+		.regs = ov12870_1616x1216_30fps,
+	},
+	{
+		.desc = "ov12870_5M_30fps",
+		.width = 2592,
+		.height = 1456,
+		.pix_clk_freq = 160,
+		.fps = 30,
+		.used = 0,
+		.pixels_per_line = 2688,
+		.lines_per_frame = 1984,
+		.bin_factor_x = 1,
+		.bin_factor_y = 1,
+		.bin_mode = 0,
+		.regs = ov12870_2592x1456_30fps,
+	},
+	{
+		.desc = "ov12870_5M_30fps",
+		.width = 2592,
+		.height = 1944,
+		.pix_clk_freq = 160,
+		.fps = 30,
+		.used = 0,
+		.pixels_per_line = 2688,
+		.lines_per_frame = 1984,
+		.bin_factor_x = 1,
+		.bin_factor_y = 1,
+		.bin_mode = 0,
+		.regs = ov12870_2592x1944_30fps,
+	},
+};
+#define N_RES_STILL (ARRAY_SIZE(ov12870_res_still))
+
+struct ov12870_resolution ov12870_res_video[] = {
+	{
+		.desc = "ov12870_736x496_30fps",
+		.width = 736,
+		.height = 496,
+		.fps = 30,
+		.pix_clk_freq = 160,
+		.used = 0,
+		.pixels_per_line = 2688,
+		.lines_per_frame = 1984,
+		.bin_factor_x = 2,
+		.bin_factor_y = 2,
+		.bin_mode = 1,
+		.regs = ov12870_736x496,
+	},
+	{
+		.desc = "ov12870_336x256_30fps",
+		.width = 336,
+		.height = 256,
+		.fps = 30,
+		.pix_clk_freq = 160,
+		.used = 0,
+		.pixels_per_line = 2688,
+		.lines_per_frame = 1984,
+		.bin_factor_x = 2,
+		.bin_factor_y = 2,
+		.bin_mode = 1,
+		.regs = ov12870_336x256,
+	},
+	{
+		.desc = "ov12870_368x304_30fps",
+		.width = 368,
+		.height = 304,
+		.fps = 30,
+		.pix_clk_freq = 160,
+		.used = 0,
+		.pixels_per_line = 2688,
+		.lines_per_frame = 1984,
+		.bin_factor_x = 2,
+		.bin_factor_y = 2,
+		.bin_mode = 1,
+		.regs = ov12870_368x304,
+	},
+	{
+		.desc = "ov12870_192x160_30fps",
+		.width = 192,
+		.height = 160,
+		.fps = 30,
+		.pix_clk_freq = 160,
+		.used = 0,
+		.pixels_per_line = 2688,
+		.lines_per_frame = 1984,
+		.bin_factor_x = 2,
+		.bin_factor_y = 2,
+		.bin_mode = 1,
+		.regs = ov12870_192x160,
+	},
+	{
+		.desc = "ov12870_1296x736_30fps",
+		.width = 1296,
+		.height = 736,
+		.fps = 30,
+		.pix_clk_freq = 160,
+		.used = 0,
+		.pixels_per_line = 2688,
+		.lines_per_frame = 1984,
+		.bin_factor_x = 2,
+		.bin_factor_y = 2,
+		.bin_mode = 0,
+		.regs = ov12870_1296x736,
+	},
+	{
+		.desc = "ov12870_1296x976_30fps",
+		.width = 1296,
+		.height = 976,
+		.fps = 30,
+		.pix_clk_freq = 160,
+		.used = 0,
+		.pixels_per_line = 2688,
+		.lines_per_frame = 1984,
+		.bin_factor_x = 2,
+		.bin_factor_y = 2,
+		.bin_mode = 0,
+		.regs = ov12870_1296x976,
+	},
+	{
+		.desc = "ov12870_1636P_30fps",
+		.width = 1636,
+		.height = 1096,
+		.fps = 30,
+		.pix_clk_freq = 160,
+		.used = 0,
+		.pixels_per_line = 2688,
+		.lines_per_frame = 1984,
+		.bin_factor_x = 1,
+		.bin_factor_y = 1,
+		.bin_mode = 0,
+		.regs = ov12870_1636p_30fps,
+	},
+	{
+		.desc = "ov12870_1080P_30fps",
+		.width = 1940,
+		.height = 1096,
+		.fps = 30,
+		.pix_clk_freq = 160,
+		.used = 0,
+		.pixels_per_line = 2688,
+		.lines_per_frame = 1984,
+		.bin_factor_x = 1,
+		.bin_factor_y = 1,
+		.bin_mode = 0,
+		.regs = ov12870_1940x1096,
+	},
+	{
+		.desc = "ov12870_5M_30fps",
+		.width = 2592,
+		.height = 1456,
+		.pix_clk_freq = 160,
+		.fps = 30,
+		.used = 0,
+		.pixels_per_line = 2688,
+		.lines_per_frame = 1984,
+		.bin_factor_x = 1,
+		.bin_factor_y = 1,
+		.bin_mode = 0,
+		.regs = ov12870_2592x1456_30fps,
+	},
+	{
+		.desc = "ov12870_5M_30fps",
+		.width = 2592,
+		.height = 1944,
+		.pix_clk_freq = 160,
+		.fps = 30,
+		.used = 0,
+		.pixels_per_line = 2688,
+		.lines_per_frame = 1984,
+		.bin_factor_x = 1,
+		.bin_factor_y = 1,
+		.bin_mode = 0,
+		.regs = ov12870_2592x1944_30fps,
+	},
+};
+
+#define N_RES_VIDEO (ARRAY_SIZE(ov12870_res_video))
+
+static struct ov12870_resolution *ov12870_res = ov12870_res_preview;
+static unsigned long N_RES = N_RES_PREVIEW;
+#endif
+#endif

+ 22 - 13
drivers/SC132GS/SC132GS.c

@@ -637,7 +637,7 @@ static RESULT SC132GS_IsiInitSensorIss(IsiSensorHandle_t handle) {
         switch(pSC132GSCtx->SensorMode.index)
         {
             case 0:
-                pSC132GSCtx->one_line_exp_time = 1;
+                pSC132GSCtx->one_line_exp_time = 0.81257f; //us 1/16  * line_time
                 pSC132GSCtx->FrameLengthLines = (0x546 - 8) * 16;
                 pSC132GSCtx->CurFrameLengthLines = pSC132GSCtx->FrameLengthLines;
                 pSC132GSCtx->MaxIntegrationLine = pSC132GSCtx->CurFrameLengthLines - 3;
@@ -646,7 +646,7 @@ static RESULT SC132GS_IsiInitSensorIss(IsiSensorHandle_t handle) {
                 pSC132GSCtx->AecMinGain = 1;
                 break;
             case 1:
-                pSC132GSCtx->one_line_exp_time = 1;
+                pSC132GSCtx->one_line_exp_time = 0.81257f; //us 1/16  * line_time
                 pSC132GSCtx->FrameLengthLines = (0x546 - 8) * 16;
                 pSC132GSCtx->CurFrameLengthLines = pSC132GSCtx->FrameLengthLines;
                 pSC132GSCtx->MaxIntegrationLine = pSC132GSCtx->CurFrameLengthLines - 3;
@@ -655,7 +655,7 @@ static RESULT SC132GS_IsiInitSensorIss(IsiSensorHandle_t handle) {
                 pSC132GSCtx->AecMinGain = 1;
                 break;
             case 2:
-                pSC132GSCtx->one_line_exp_time = 1;
+                pSC132GSCtx->one_line_exp_time = 0.81257f; //us 1/16  * line_time
                 pSC132GSCtx->FrameLengthLines = (0x546 - 8) * 16;
                 pSC132GSCtx->CurFrameLengthLines = pSC132GSCtx->FrameLengthLines;
                 pSC132GSCtx->MaxIntegrationLine = pSC132GSCtx->CurFrameLengthLines - 3;
@@ -664,7 +664,7 @@ static RESULT SC132GS_IsiInitSensorIss(IsiSensorHandle_t handle) {
                 pSC132GSCtx->AecMinGain = 1;
                 break;
             case 3:
-                pSC132GSCtx->one_line_exp_time = 1;
+                pSC132GSCtx->one_line_exp_time = 0.81257f; //us 1/16  * line_time
                 pSC132GSCtx->FrameLengthLines = (0x546 - 8) * 16;
                 pSC132GSCtx->CurFrameLengthLines = pSC132GSCtx->FrameLengthLines;
                 pSC132GSCtx->MaxIntegrationLine = pSC132GSCtx->CurFrameLengthLines - 3;
@@ -673,7 +673,7 @@ static RESULT SC132GS_IsiInitSensorIss(IsiSensorHandle_t handle) {
                 pSC132GSCtx->AecMinGain = 1;
                 break;
             case 4:
-                pSC132GSCtx->one_line_exp_time = 1;
+                pSC132GSCtx->one_line_exp_time = 0.81257f; //us 1/16  * line_time
                 pSC132GSCtx->FrameLengthLines = (0x546 - 8) * 16;
                 pSC132GSCtx->CurFrameLengthLines = pSC132GSCtx->FrameLengthLines;
                 pSC132GSCtx->MaxIntegrationLine = pSC132GSCtx->CurFrameLengthLines - 3;
@@ -682,7 +682,7 @@ static RESULT SC132GS_IsiInitSensorIss(IsiSensorHandle_t handle) {
                 pSC132GSCtx->AecMinGain = 1;
                 break;
             case 5:
-                pSC132GSCtx->one_line_exp_time = 1;
+                pSC132GSCtx->one_line_exp_time = 0.81257f; //us 1/16  * line_time
                 pSC132GSCtx->FrameLengthLines = (0x546 - 8) * 16;
                 pSC132GSCtx->CurFrameLengthLines = pSC132GSCtx->FrameLengthLines;
                 pSC132GSCtx->MaxIntegrationLine = pSC132GSCtx->CurFrameLengthLines - 3;
@@ -1343,26 +1343,35 @@ RESULT SC132GS_IsiSetIntegrationTimeIss
      uint8_t * pNumberOfFramesToSkip, float *hdr_ratio)
 {
     RESULT result = RET_SUCCESS;
+    uint32_t exp_lines = 0;
 
     SC132GS_Context_t *pSC132GSCtx = (SC132GS_Context_t *) handle;
     HalContext_t *pHalCtx = (HalContext_t *) pSC132GSCtx->IsiCtx.HalHandle;
 
-    // 曝光时间小于3ms
-    if (NewIntegrationTime > 3692.0f) {
-        NewIntegrationTime = 3692.0f;
+    NewIntegrationTime *= 1000000;  //us
+
+    // 曝光时间小于3ms, 对应到寄存器值3692
+    //if (NewIntegrationTime > 3000) {
+    //    NewIntegrationTime = 3000;
+    //}
+    // time to lines
+    exp_lines = NewIntegrationTime / pSC132GSCtx->one_line_exp_time;
+
+    if (exp_lines > pSC132GSCtx->FrameLengthLines) {
+        exp_lines = pSC132GSCtx->FrameLengthLines;
     }
 
     //行长 = 寄存器{16‘h320c, 16′h320d}值*2
     //2*{16’h320e,16’h320f}-6:h320e,h320f为帧长
-    uint32_t hval_time =  (((uint32_t)NewIntegrationTime) & 0xf0000) >> 16;
-    uint32_t mval_time =  (((uint32_t)NewIntegrationTime) & 0xff00) >> 8;
-    uint32_t lval_time =  ((uint32_t)NewIntegrationTime) & 0xff;
+    uint32_t hval_time =  (exp_lines & 0xf0000) >> 16;
+    uint32_t mval_time =  (exp_lines & 0xff00) >> 8;
+    uint32_t lval_time =  exp_lines & 0xff;
 
     result = SC132GS_IsiRegisterWriteIss(handle, 0x3e00, hval_time);
     result = SC132GS_IsiRegisterWriteIss(handle, 0x3e01, mval_time);
     result = SC132GS_IsiRegisterWriteIss(handle, 0x3e02, lval_time);
 
-    pSC132GSCtx->AecCurIntegrationTime = NewIntegrationTime;
+    pSC132GSCtx->AecCurIntegrationTime = exp_lines * pSC132GSCtx->one_line_exp_time;
     *pNumberOfFramesToSkip = 1U;
     *pSetIntegrationTime = pSC132GSCtx->AecCurIntegrationTime;
 

+ 19 - 0
drivers/SC2310/3aconfig_SC2310.json

@@ -517,6 +517,25 @@
                     "blc" : [256, 256]
                 }
             ]
+        },
+        {
+            "classname" : "AGe",
+            "forcecreate" : true,
+            "enable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                }
+            ]
         }
     ]
 }

+ 522 - 0
drivers/SC2310/3aconfig_SC2310_1440x1080_raw10.json

@@ -0,0 +1,522 @@
+	{
+    "root" : [
+        {
+            "classname" : "Aev1",
+            "enable" : false
+        },
+        {
+            "classname" : "Aev2",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 2.6,
+            "setPoint" : 30,
+            "roi_start" : 12,
+            "roi_end" : 20,
+            "roi_weight" : 1
+        },
+        {
+            "classname" : "Aehdr",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 30
+        },
+        {
+            "classname" : "AdaptiveAe",
+            "enable" : true,
+            "motionThreshold" : 0.7,
+            "roi_start" : 7,
+            "roi_end" : 20,
+            "roi_weight" : 1,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "targetFilter"  : 0.5,
+            "wdrContrast.min" : 150,
+            "wdrContrast.max" : 150,
+            "lowlight" : {
+                "linear_repress" : [0.8, 0.7, 0.5, 0.5, 0.4],
+                "linear_gain" : [4, 8, 16, 32, 100],
+                "hdr_repress" : [1, 0.8, 0.8, 0.8, 0.8],
+                "hdr_gain" : [4, 8, 16, 32, 100]
+            },
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 1,
+            "setPoint" : 60
+        },
+        {
+            "classname" : "Awbv2",
+            "enable" : true,
+            "illuorder" : "A, D50, D65, D75, TL84, F12, CWF",
+            "indoor" : [1, 1, 1, 1, 1, 1, 1],
+            "outdoor" : [1, 1, 1, 1, 1, 1, 1],
+            "transition" : [1, 1, 1, 1, 1, 1, 1],
+            "lsc_ratio":{
+                "gains" : [1, 2, 4, 8, 16, 32],
+                "vignetting" : [1, 1, 1, 0.9, 0.8, 0.7]
+            },
+            "avg" : 0.0
+        },
+        {
+            "classname" : "IspController",
+            "enable" : true
+        },
+        {
+            "classname" : "AutoHdr",
+            "enable" : false
+        },
+        {
+            "classname" : "DciHist",
+            "enable" : false,
+            "gaussMeanPos" : 64,
+            "gaussSigmaPos" : 128,
+            "gaussAmpPos" : 1.0,
+            "gaussMeanNeg" : 0,
+            "gaussSigmaNeg" : 128,
+            "gaussAmpNeg" : 1.0
+        },
+        {
+            "classname" : "SensorController",
+            "enable" : true
+        },
+        {
+            "classname" : "AGamma64",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [18, 35, 53, 70, 86, 103, 120, 136, 153, 169, 186, 202, 219, 235, 251, 267, 283, 300, 316, 332, 348, 364, 380, 396, 412, 428, 444, 460, 476, 491, 507, 523, 539, 555, 571, 586, 602, 618, 634, 649, 665, 681, 696, 712, 728, 743, 759, 775, 790, 806, 821, 837, 853, 868, 884, 899, 914, 930, 945, 961, 977, 992, 1008, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ACproc",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1.2, 1.1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0, 0],
+                    "saturation" : [1.2, 1.05, 0.92, 0.80, 0.75, 0.6],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1.0, 1.0, 1.3, 1.3, 1.5, 1.85],
+                    "brightness" : [-12, -12, -24, -30, -16, 0],
+                    "saturation" : [1.25, 1.0, 0.9, 0.8, 0.7, 0.6],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                }
+            ]
+        },
+        {
+            "classname" : "Aee",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [1024, 1024, 1024, 1024, 1024, 1024],
+                    "ydown" : [1024, 1024, 1024, 1024, 1024, 1024],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [1000, 1000, 1000, 1000, 500, 200]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [8000, 8000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1500, 600, 200]
+                }
+            ]
+        },
+        {
+            "classname" : "ACa",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enableCA" : [1, 1, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1023, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enableCA" : [0, 0, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ], 
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+			            [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ADmsc2",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "demoire_enable" : true,			
+            "demoire_area_thr" : 16,
+            "demoire_sat_shrink" : 8,
+            "demoire_r2" : 256,
+            "demoire_r1" : 0,           
+		    "demoire_t2_shift" : 2,
+            "demoire_t1" : 180,
+            "demoire_edge_r2" : 256,
+            "demoire_edge_r1" : 20,
+            "demoire_edge_t2_shift" : 4,
+            "demoire_edge_t1" :20,	
+            "depurple_enable" : true,
+            "depurple_red_sat" : true,	
+            "depurple_blue_sat" : true,	
+            "depurple_sat_shrink" : 8,				
+            "depurple_thr" : 40,
+            "skin_enable" : true,			
+            "cb_thr_max_2047" : 10,
+            "cb_thr_min_2047" : 8,
+            "cr_thr_max_2047" : 10,
+            "cr_thr_min_2047" : 8,
+            "y_thr_max_2047" : 10,
+            "y_thr_min_2047" : 8,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [1, 1, 1, 1, 1, 1],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [70, 60, 40, 20, 20, 0],
+                    "facwhite" : [70, 60, 60, 40, 20, 0],
+                    "maxblack" : [100, 100, 100, 100, 100, 100],
+                    "maxwhite" : [100, 100, 100, 100, 100, 100],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [5, 5, 5, 5, 5, 5],
+                    "gsharpen" : [8, 8, 8, 8, 8, 8],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],					
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [0, 0, 0, 0, 0, 0],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [200, 200, 100, 50, 20, 20],
+                    "facwhite" : [200, 200, 150, 80, 40, 20],
+                    "maxblack" : [200, 200, 100, 100, 100, 100],
+                    "maxwhite" : [200, 200, 200, 200, 200, 200],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],				
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                }
+            ]
+        },
+        {
+            "classname" : "AWdr4",
+            "forcecreate" : true,
+            "enable" : false,
+	    "disable" : true,
+            "backlight" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                }
+            ],
+            "entropy_slope": 200,
+            "entropy_base": 700,
+            "entropy" : [0, 0, 0, 2, 3, 6, 11, 22, 39, 67, 111, 177, 227, 266, 321, 355, 377, 355, 221, 0],
+            "gamma_down" : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 9, 16, 36, 64, 136, 256, 576, 1023],
+            "gamma_up" : [0, 283121, 330313, 377512, 424723, 471961, 519250, 566650, 614235, 662241, 711077, 761540, 792420, 815280, 849436, 875575, 913530, 948975, 1002792, 1048575],
+            "?gamma_up" : [0, 1024, 34837, 56737, 82912, 116814, 162079, 223337, 306767, 420749, 576707, 735048, 745499, 755950, 776852, 797754, 839557, 881361, 964968, 1048575],
+            "gamma_pre" : [0, 31514, 36815, 42173, 47646, 53350, 59514, 66602, 75530, 88145, 108135, 142869, 175428, 207095, 269144, 330303, 442139, 571475, 810472, 1048575]
+        },
+        {
+
+            "classname" : "A3dnrv3",
+            "forcecreate" : false,
+            "enable" : false,
+	    "disable" : false,
+            "autonoiseLevel": true,
+            "tnr_en" : false,
+            "nlm_en" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [1, 1, 1, 1, 1, 1]
+                }
+            ]
+        },
+        {
+            "classname" : "A2dnrv5",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
+                    "sigma" : [2, 2, 2, 5, 6, 6, 11, 11, 11, 14],
+                    "blendstatic" : [100, 100, 100, 100, 100, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 90, 90, 100, 100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [100, 100, 100, 100, 100, 100, 100, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                }
+            ]
+        },
+        {
+            "classname" : "ADpf",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.1, 0.2, 0.4, 0.7, 1, 1.5, 2, 2.5, 3, 3.5],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [1, 1, 1, 1, 1, 1, 1, 2, 4, 16],
+                    "Div" : [64, 64, 64, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [2, 2, 3, 3, 3, 3, 4, 4, 4, 4],
+                    "sigma_rb" : [2, 2, 3, 3, 3, 3, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [16, 16, 16, 16, 16, 16, 16, 16, 16, 16],
+                    "Div" : [64, 64, 64, 64, 64, 64, 64, 64, 64, 64],
+                    "sigma_g" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "sigma_rb" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ABlc",
+            "forcecreate" : true,
+            "enable" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "blc" : [64, 64]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "blc" : [256, 256]
+                }
+            ]
+        }
+    ]
+}

+ 522 - 0
drivers/SC2310/3aconfig_SC2310_1920x1080_raw10.json

@@ -0,0 +1,522 @@
+	{
+    "root" : [
+        {
+            "classname" : "Aev1",
+            "enable" : false
+        },
+        {
+            "classname" : "Aev2",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 2.6,
+            "setPoint" : 30,
+            "roi_start" : 12,
+            "roi_end" : 20,
+            "roi_weight" : 1
+        },
+        {
+            "classname" : "Aehdr",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 30
+        },
+        {
+            "classname" : "AdaptiveAe",
+            "enable" : true,
+            "motionThreshold" : 0.7,
+            "roi_start" : 7,
+            "roi_end" : 20,
+            "roi_weight" : 1,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "targetFilter"  : 0.5,
+            "wdrContrast.min" : 150,
+            "wdrContrast.max" : 150,
+            "lowlight" : {
+                "linear_repress" : [0.8, 0.7, 0.5, 0.5, 0.4],
+                "linear_gain" : [4, 8, 16, 32, 100],
+                "hdr_repress" : [1, 0.8, 0.8, 0.8, 0.8],
+                "hdr_gain" : [4, 8, 16, 32, 100]
+            },
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 1,
+            "setPoint" : 60
+        },
+        {
+            "classname" : "Awbv2",
+            "enable" : true,
+            "illuorder" : "A, D50, D65, D75, TL84, F12, CWF",
+            "indoor" : [1, 1, 1, 1, 1, 1, 1],
+            "outdoor" : [1, 1, 1, 1, 1, 1, 1],
+            "transition" : [1, 1, 1, 1, 1, 1, 1],
+            "lsc_ratio":{
+                "gains" : [1, 2, 4, 8, 16, 32],
+                "vignetting" : [1, 1, 1, 0.9, 0.8, 0.7]
+            },
+            "avg" : 0.0
+        },
+        {
+            "classname" : "IspController",
+            "enable" : true
+        },
+        {
+            "classname" : "AutoHdr",
+            "enable" : false
+        },
+        {
+            "classname" : "DciHist",
+            "enable" : false,
+            "gaussMeanPos" : 64,
+            "gaussSigmaPos" : 128,
+            "gaussAmpPos" : 1.0,
+            "gaussMeanNeg" : 0,
+            "gaussSigmaNeg" : 128,
+            "gaussAmpNeg" : 1.0
+        },
+        {
+            "classname" : "SensorController",
+            "enable" : true
+        },
+        {
+            "classname" : "AGamma64",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [18, 35, 53, 70, 86, 103, 120, 136, 153, 169, 186, 202, 219, 235, 251, 267, 283, 300, 316, 332, 348, 364, 380, 396, 412, 428, 444, 460, 476, 491, 507, 523, 539, 555, 571, 586, 602, 618, 634, 649, 665, 681, 696, 712, 728, 743, 759, 775, 790, 806, 821, 837, 853, 868, 884, 899, 914, 930, 945, 961, 977, 992, 1008, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ACproc",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1.2, 1.1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0, 0],
+                    "saturation" : [1.2, 1.05, 0.92, 0.80, 0.75, 0.6],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1.0, 1.0, 1.3, 1.3, 1.5, 1.85],
+                    "brightness" : [-12, -12, -24, -30, -16, 0],
+                    "saturation" : [1.25, 1.0, 0.9, 0.8, 0.7, 0.6],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                }
+            ]
+        },
+        {
+            "classname" : "Aee",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [1024, 1024, 1024, 1024, 1024, 1024],
+                    "ydown" : [1024, 1024, 1024, 1024, 1024, 1024],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [1000, 1000, 1000, 1000, 500, 200]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [8000, 8000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1500, 600, 200]
+                }
+            ]
+        },
+        {
+            "classname" : "ACa",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enableCA" : [1, 1, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1023, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enableCA" : [0, 0, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ], 
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+			            [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ADmsc2",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "demoire_enable" : true,			
+            "demoire_area_thr" : 16,
+            "demoire_sat_shrink" : 8,
+            "demoire_r2" : 256,
+            "demoire_r1" : 0,           
+		    "demoire_t2_shift" : 2,
+            "demoire_t1" : 180,
+            "demoire_edge_r2" : 256,
+            "demoire_edge_r1" : 20,
+            "demoire_edge_t2_shift" : 4,
+            "demoire_edge_t1" :20,	
+            "depurple_enable" : true,
+            "depurple_red_sat" : true,	
+            "depurple_blue_sat" : true,	
+            "depurple_sat_shrink" : 8,				
+            "depurple_thr" : 40,
+            "skin_enable" : true,			
+            "cb_thr_max_2047" : 10,
+            "cb_thr_min_2047" : 8,
+            "cr_thr_max_2047" : 10,
+            "cr_thr_min_2047" : 8,
+            "y_thr_max_2047" : 10,
+            "y_thr_min_2047" : 8,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [1, 1, 1, 1, 1, 1],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [70, 60, 40, 20, 20, 0],
+                    "facwhite" : [70, 60, 60, 40, 20, 0],
+                    "maxblack" : [100, 100, 100, 100, 100, 100],
+                    "maxwhite" : [100, 100, 100, 100, 100, 100],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [5, 5, 5, 5, 5, 5],
+                    "gsharpen" : [8, 8, 8, 8, 8, 8],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],					
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [0, 0, 0, 0, 0, 0],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [200, 200, 100, 50, 20, 20],
+                    "facwhite" : [200, 200, 150, 80, 40, 20],
+                    "maxblack" : [200, 200, 100, 100, 100, 100],
+                    "maxwhite" : [200, 200, 200, 200, 200, 200],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],				
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                }
+            ]
+        },
+        {
+            "classname" : "AWdr4",
+            "forcecreate" : true,
+            "enable" : false,
+	    "disable" : true,
+            "backlight" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                }
+            ],
+            "entropy_slope": 200,
+            "entropy_base": 700,
+            "entropy" : [0, 0, 0, 2, 3, 6, 11, 22, 39, 67, 111, 177, 227, 266, 321, 355, 377, 355, 221, 0],
+            "gamma_down" : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 9, 16, 36, 64, 136, 256, 576, 1023],
+            "gamma_up" : [0, 283121, 330313, 377512, 424723, 471961, 519250, 566650, 614235, 662241, 711077, 761540, 792420, 815280, 849436, 875575, 913530, 948975, 1002792, 1048575],
+            "?gamma_up" : [0, 1024, 34837, 56737, 82912, 116814, 162079, 223337, 306767, 420749, 576707, 735048, 745499, 755950, 776852, 797754, 839557, 881361, 964968, 1048575],
+            "gamma_pre" : [0, 31514, 36815, 42173, 47646, 53350, 59514, 66602, 75530, 88145, 108135, 142869, 175428, 207095, 269144, 330303, 442139, 571475, 810472, 1048575]
+        },
+        {
+
+            "classname" : "A3dnrv3",
+            "forcecreate" : false,
+            "enable" : false,
+	    "disable" : false,
+            "autonoiseLevel": true,
+            "tnr_en" : false,
+            "nlm_en" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [1, 1, 1, 1, 1, 1]
+                }
+            ]
+        },
+        {
+            "classname" : "A2dnrv5",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
+                    "sigma" : [2, 2, 2, 5, 6, 6, 11, 11, 11, 14],
+                    "blendstatic" : [100, 100, 100, 100, 100, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 90, 90, 100, 100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [100, 100, 100, 100, 100, 100, 100, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                }
+            ]
+        },
+        {
+            "classname" : "ADpf",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.1, 0.2, 0.4, 0.7, 1, 1.5, 2, 2.5, 3, 3.5],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [1, 1, 1, 1, 1, 1, 1, 2, 4, 16],
+                    "Div" : [64, 64, 64, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [2, 2, 3, 3, 3, 3, 4, 4, 4, 4],
+                    "sigma_rb" : [2, 2, 3, 3, 3, 3, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [16, 16, 16, 16, 16, 16, 16, 16, 16, 16],
+                    "Div" : [64, 64, 64, 64, 64, 64, 64, 64, 64, 64],
+                    "sigma_g" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "sigma_rb" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ABlc",
+            "forcecreate" : true,
+            "enable" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "blc" : [64, 64]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "blc" : [256, 256]
+                }
+            ]
+        }
+    ]
+}

+ 541 - 0
drivers/SC2310/3aconfig_SC2310_1920x1088_raw12.json

@@ -0,0 +1,541 @@
+	{
+    "root" : [
+        {
+            "classname" : "Aev1",
+            "enable" : false
+        },
+        {
+            "classname" : "Aev2",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 2.6,
+            "setPoint" : 30,
+            "roi_start" : 12,
+            "roi_end" : 20,
+            "roi_weight" : 1
+        },
+        {
+            "classname" : "Aehdr",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 30
+        },
+        {
+            "classname" : "AdaptiveAe",
+            "enable" : true,
+            "motionThreshold" : 0.7,
+            "roi_start" : 7,
+            "roi_end" : 20,
+            "roi_weight" : 1,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "targetFilter"  : 0.5,
+            "wdrContrast.min" : 150,
+            "wdrContrast.max" : 150,
+            "lowlight" : {
+                "linear_repress" : [0.8, 0.7, 0.5, 0.5, 0.4],
+                "linear_gain" : [4, 8, 16, 32, 100],
+                "hdr_repress" : [1, 0.8, 0.8, 0.8, 0.8],
+                "hdr_gain" : [4, 8, 16, 32, 100]
+            },
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 1,
+            "setPoint" : 60
+        },
+        {
+            "classname" : "Awbv2",
+            "enable" : true,
+            "illuorder" : "A, D50, D65, D75, TL84, F12, CWF",
+            "indoor" : [1, 1, 1, 1, 1, 1, 1],
+            "outdoor" : [1, 1, 1, 1, 1, 1, 1],
+            "transition" : [1, 1, 1, 1, 1, 1, 1],
+            "lsc_ratio":{
+                "gains" : [1, 2, 4, 8, 16, 32],
+                "vignetting" : [1, 1, 1, 0.9, 0.8, 0.7]
+            },
+            "avg" : 0.0
+        },
+        {
+            "classname" : "IspController",
+            "enable" : true
+        },
+        {
+            "classname" : "AutoHdr",
+            "enable" : false
+        },
+        {
+            "classname" : "DciHist",
+            "enable" : false,
+            "gaussMeanPos" : 64,
+            "gaussSigmaPos" : 128,
+            "gaussAmpPos" : 1.0,
+            "gaussMeanNeg" : 0,
+            "gaussSigmaNeg" : 128,
+            "gaussAmpNeg" : 1.0
+        },
+        {
+            "classname" : "SensorController",
+            "enable" : true
+        },
+        {
+            "classname" : "AGamma64",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [18, 35, 53, 70, 86, 103, 120, 136, 153, 169, 186, 202, 219, 235, 251, 267, 283, 300, 316, 332, 348, 364, 380, 396, 412, 428, 444, 460, 476, 491, 507, 523, 539, 555, 571, 586, 602, 618, 634, 649, 665, 681, 696, 712, 728, 743, 759, 775, 790, 806, 821, 837, 853, 868, 884, 899, 914, 930, 945, 961, 977, 992, 1008, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ACproc",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1.2, 1.1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0, 0],
+                    "saturation" : [1.2, 1.05, 0.92, 0.80, 0.75, 0.6],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1.0, 1.0, 1.3, 1.3, 1.5, 1.85],
+                    "brightness" : [-12, -12, -24, -30, -16, 0],
+                    "saturation" : [1.25, 1.0, 0.9, 0.8, 0.7, 0.6],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                }
+            ]
+        },
+        {
+            "classname" : "Aee",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [1024, 1024, 1024, 1024, 1024, 1024],
+                    "ydown" : [1024, 1024, 1024, 1024, 1024, 1024],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [1000, 1000, 1000, 1000, 500, 200]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [8000, 8000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1500, 600, 200]
+                }
+            ]
+        },
+        {
+            "classname" : "ACa",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enableCA" : [1, 1, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1023, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enableCA" : [0, 0, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ], 
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+			            [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ADmsc2",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "demoire_enable" : true,			
+            "demoire_area_thr" : 16,
+            "demoire_sat_shrink" : 8,
+            "demoire_r2" : 256,
+            "demoire_r1" : 0,           
+		    "demoire_t2_shift" : 2,
+            "demoire_t1" : 180,
+            "demoire_edge_r2" : 256,
+            "demoire_edge_r1" : 20,
+            "demoire_edge_t2_shift" : 4,
+            "demoire_edge_t1" :20,	
+            "depurple_enable" : true,
+            "depurple_red_sat" : true,	
+            "depurple_blue_sat" : true,	
+            "depurple_sat_shrink" : 8,				
+            "depurple_thr" : 40,
+            "skin_enable" : true,			
+            "cb_thr_max_2047" : 10,
+            "cb_thr_min_2047" : 8,
+            "cr_thr_max_2047" : 10,
+            "cr_thr_min_2047" : 8,
+            "y_thr_max_2047" : 10,
+            "y_thr_min_2047" : 8,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [1, 1, 1, 1, 1, 1],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [70, 60, 40, 20, 20, 0],
+                    "facwhite" : [70, 60, 60, 40, 20, 0],
+                    "maxblack" : [100, 100, 100, 100, 100, 100],
+                    "maxwhite" : [100, 100, 100, 100, 100, 100],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [5, 5, 5, 5, 5, 5],
+                    "gsharpen" : [8, 8, 8, 8, 8, 8],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],					
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [0, 0, 0, 0, 0, 0],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [200, 200, 100, 50, 20, 20],
+                    "facwhite" : [200, 200, 150, 80, 40, 20],
+                    "maxblack" : [200, 200, 100, 100, 100, 100],
+                    "maxwhite" : [200, 200, 200, 200, 200, 200],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],				
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                }
+            ]
+        },
+        {
+            "classname" : "AWdr4",
+            "forcecreate" : true,
+            "enable" : false,
+	    "disable" : true,
+            "backlight" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                }
+            ],
+            "entropy_slope": 200,
+            "entropy_base": 700,
+            "entropy" : [0, 0, 0, 2, 3, 6, 11, 22, 39, 67, 111, 177, 227, 266, 321, 355, 377, 355, 221, 0],
+            "gamma_down" : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 9, 16, 36, 64, 136, 256, 576, 1023],
+            "gamma_up" : [0, 283121, 330313, 377512, 424723, 471961, 519250, 566650, 614235, 662241, 711077, 761540, 792420, 815280, 849436, 875575, 913530, 948975, 1002792, 1048575],
+            "?gamma_up" : [0, 1024, 34837, 56737, 82912, 116814, 162079, 223337, 306767, 420749, 576707, 735048, 745499, 755950, 776852, 797754, 839557, 881361, 964968, 1048575],
+            "gamma_pre" : [0, 31514, 36815, 42173, 47646, 53350, 59514, 66602, 75530, 88145, 108135, 142869, 175428, 207095, 269144, 330303, 442139, 571475, 810472, 1048575]
+        },
+        {
+
+            "classname" : "A3dnrv3",
+            "forcecreate" : false,
+            "enable" : false,
+	    "disable" : false,
+            "autonoiseLevel": true,
+            "tnr_en" : false,
+            "nlm_en" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [1, 1, 1, 1, 1, 1]
+                }
+            ]
+        },
+        {
+            "classname" : "A2dnrv5",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
+                    "sigma" : [2, 2, 2, 5, 6, 6, 11, 11, 11, 14],
+                    "blendstatic" : [100, 100, 100, 100, 100, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 90, 90, 100, 100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [100, 100, 100, 100, 100, 100, 100, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                }
+            ]
+        },
+        {
+            "classname" : "ADpf",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.1, 0.2, 0.4, 0.7, 1, 1.5, 2, 2.5, 3, 3.5],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [1, 1, 1, 1, 1, 1, 1, 2, 4, 16],
+                    "Div" : [64, 64, 64, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [2, 2, 3, 3, 3, 3, 4, 4, 4, 4],
+                    "sigma_rb" : [2, 2, 3, 3, 3, 3, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [16, 16, 16, 16, 16, 16, 16, 16, 16, 16],
+                    "Div" : [64, 64, 64, 64, 64, 64, 64, 64, 64, 64],
+                    "sigma_g" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "sigma_rb" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ABlc",
+            "forcecreate" : true,
+            "enable" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "blc" : [256, 256]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "blc" : [256, 256]
+                }
+            ]
+        },
+        {
+            "classname" : "AGe",
+            "forcecreate" : true,
+            "enable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                }
+            ]
+        }
+    ]
+}

+ 541 - 0
drivers/SC2310/3aconfig_SC2310_640x480_raw12.json

@@ -0,0 +1,541 @@
+	{
+    "root" : [
+        {
+            "classname" : "Aev1",
+            "enable" : false
+        },
+        {
+            "classname" : "Aev2",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 2.6,
+            "setPoint" : 30,
+            "roi_start" : 12,
+            "roi_end" : 20,
+            "roi_weight" : 1
+        },
+        {
+            "classname" : "Aehdr",
+            "enable" : false,
+            "motionThreshold" : 0.5,
+            "roi_start" : 8,
+            "roi_end" : 24,
+            "roi_weight" : 0.5,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 12,
+            "setPoint" : 30
+        },
+        {
+            "classname" : "AdaptiveAe",
+            "enable" : true,
+            "motionThreshold" : 0.7,
+            "roi_start" : 7,
+            "roi_end" : 20,
+            "roi_weight" : 1,
+            "faceWeight" : 0.6,
+            "motionFilter"  : 0.5,
+            "targetFilter"  : 0.5,
+            "wdrContrast.min" : 150,
+            "wdrContrast.max" : 150,
+            "lowlight" : {
+                "linear_repress" : [0.8, 0.7, 0.5, 0.5, 0.4],
+                "linear_gain" : [4, 8, 16, 32, 100],
+                "hdr_repress" : [1, 0.8, 0.8, 0.8, 0.8],
+                "hdr_gain" : [4, 8, 16, 32, 100]
+            },
+            "maxSensorAgain" : 15.5,
+            "maxSensorDgain" : 1,
+            "maxIspDgain" : 1,
+            "setPoint" : 60
+        },
+        {
+            "classname" : "Awbv2",
+            "enable" : true,
+            "illuorder" : "A, D50, D65, D75, TL84, F12, CWF",
+            "indoor" : [1, 1, 1, 1, 1, 1, 1],
+            "outdoor" : [1, 1, 1, 1, 1, 1, 1],
+            "transition" : [1, 1, 1, 1, 1, 1, 1],
+            "lsc_ratio":{
+                "gains" : [1, 2, 4, 8, 16, 32],
+                "vignetting" : [1, 1, 1, 0.9, 0.8, 0.7]
+            },
+            "avg" : 0.0
+        },
+        {
+            "classname" : "IspController",
+            "enable" : true
+        },
+        {
+            "classname" : "AutoHdr",
+            "enable" : false
+        },
+        {
+            "classname" : "DciHist",
+            "enable" : false,
+            "gaussMeanPos" : 64,
+            "gaussSigmaPos" : 128,
+            "gaussAmpPos" : 1.0,
+            "gaussMeanNeg" : 0,
+            "gaussSigmaNeg" : 128,
+            "gaussAmpNeg" : 1.0
+        },
+        {
+            "classname" : "SensorController",
+            "enable" : true
+        },
+        {
+            "classname" : "AGamma64",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [93, 135, 176, 221, 267, 305, 343, 374, 398, 421, 444, 464, 484, 501, 521, 541, 558, 575, 591, 608, 624, 638, 650, 662, 675, 686, 697, 708, 719, 730, 741, 751, 761, 772, 782, 791, 801, 810, 819, 829, 837, 847, 856, 864, 873, 882, 890, 898, 907, 914, 923, 930, 939, 946, 954, 962, 969, 976, 985, 992, 999, 1006, 1014, 1023],
+                        [18, 35, 53, 70, 86, 103, 120, 136, 153, 169, 186, 202, 219, 235, 251, 267, 283, 300, 316, 332, 348, 364, 380, 396, 412, 428, 444, 460, 476, 491, 507, 523, 539, 555, 571, 586, 602, 618, 634, 649, 665, 681, 696, 712, 728, 743, 759, 775, 790, 806, 821, 837, 853, 868, 884, 899, 914, 930, 945, 961, 977, 992, 1008, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curve" : [
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [98, 159, 225, 274, 314, 342, 367, 391, 413, 433, 453, 471, 489, 506, 522, 538, 554, 568, 583, 597, 610, 624, 637, 649, 662, 674, 685, 697, 708, 720, 731, 741, 752, 763, 773, 783, 793, 803, 812, 822, 831, 841, 850, 859, 868, 877, 886, 894, 903, 911, 920, 928, 936, 944, 952, 960, 968, 976, 984, 991, 999, 1006, 1014, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023],
+                        [73, 113, 147, 176, 203, 228, 251, 273, 295, 315, 335, 354, 372, 390, 407, 425, 441, 457, 473, 489, 504, 519, 534, 549, 563, 577, 591, 605, 619, 632, 646, 659, 672, 685, 697, 710, 722, 735, 747, 759, 771, 783, 794, 806, 818, 829, 840, 852, 863, 874, 885, 896, 907, 918, 928, 939, 950, 960, 971, 981, 991, 1002, 1012, 1023]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ACproc",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1.2, 1.1, 1, 1, 1, 1],
+                    "brightness" : [0, 0, 0, 0, 0, 0],
+                    "saturation" : [1.2, 1.05, 0.92, 0.80, 0.75, 0.6],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "contrast" : [1.0, 1.0, 1.3, 1.3, 1.5, 1.85],
+                    "brightness" : [-12, -12, -24, -30, -16, 0],
+                    "saturation" : [1.25, 1.0, 0.9, 0.8, 0.7, 0.6],
+                    "hue" : [0, 0, 0, 0, 0, 0],
+                    "chromaout" : [2, 2, 2, 2, 2, 2],
+                    "lumain" : [2, 2, 2, 2, 2, 2],
+                    "lumaout" : [2, 2, 2, 2, 2, 2]
+                }
+            ]
+        },
+        {
+            "classname" : "Aee",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [1024, 1024, 1024, 1024, 1024, 1024],
+                    "ydown" : [1024, 1024, 1024, 1024, 1024, 1024],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [1000, 1000, 1000, 1000, 500, 200]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "strength" : [100, 100, 100, 100, 100, 100],
+                    "srcStrength" : [1, 1, 1, 1, 1, 1],
+                    "yup" : [5000, 5000, 5000, 5000, 5000, 5000],
+                    "ydown" : [8000, 8000, 5000, 5000, 5000, 5000],
+                    "uvgain" : [0, 0, 0, 0, 0, 0],
+                    "edgegain" : [2000, 2000, 2000, 1500, 600, 200]
+                }
+            ]
+        },
+        {
+            "classname" : "ACa",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enableCA" : [1, 1, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ],
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1023, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023],
+                        [0, 0, 0, 0, 15, 35, 56, 76, 97, 122, 143, 163, 184, 199, 219, 240, 260, 276, 296, 312, 332, 347, 368, 383, 398, 414, 429, 439, 455, 470, 480, 491, 496, 501, 511, 521, 531, 547, 557, 572, 588, 598, 613, 634, 649, 664, 680, 695, 716, 731, 751, 772, 787, 808, 828, 843, 864, 884, 905, 925, 946, 966, 987, 1007, 1028, 1023]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enableCA" : [0, 0, 1, 1, 1, 1],
+                    "enableDCI" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "curveCA" : [
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
+                        [0, 0, 0, 48, 378, 600, 747, 845, 909, 950, 977, 995, 1006, 1012, 1017, 1019, 1021, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024]
+                    ], 
+                    "curveDCI" : [
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+                        [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022],
+			            [0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 14, 20, 27, 34, 43, 53, 64, 76, 90, 105, 121, 139, 158, 178, 199, 221, 244, 268, 292, 317, 343, 368, 394, 420, 445, 471, 495, 520, 544, 568, 592, 615, 638, 659, 681, 702, 722, 742, 762, 780, 799, 817, 834, 852, 868, 885, 901, 917, 933, 948, 963, 979, 995, 1010, 1022]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ADmsc2",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "demoire_enable" : true,			
+            "demoire_area_thr" : 16,
+            "demoire_sat_shrink" : 8,
+            "demoire_r2" : 256,
+            "demoire_r1" : 0,           
+		    "demoire_t2_shift" : 2,
+            "demoire_t1" : 180,
+            "demoire_edge_r2" : 256,
+            "demoire_edge_r1" : 20,
+            "demoire_edge_t2_shift" : 4,
+            "demoire_edge_t1" :20,	
+            "depurple_enable" : true,
+            "depurple_red_sat" : true,	
+            "depurple_blue_sat" : true,	
+            "depurple_sat_shrink" : 8,				
+            "depurple_thr" : 40,
+            "skin_enable" : true,			
+            "cb_thr_max_2047" : 10,
+            "cb_thr_min_2047" : 8,
+            "cr_thr_max_2047" : 10,
+            "cr_thr_min_2047" : 8,
+            "y_thr_max_2047" : 10,
+            "y_thr_min_2047" : 8,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [1, 1, 1, 1, 1, 1],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [70, 60, 40, 20, 20, 0],
+                    "facwhite" : [70, 60, 60, 40, 20, 0],
+                    "maxblack" : [100, 100, 100, 100, 100, 100],
+                    "maxwhite" : [100, 100, 100, 100, 100, 100],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [5, 5, 5, 5, 5, 5],
+                    "gsharpen" : [8, 8, 8, 8, 8, 8],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],					
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "enableSharpen" : [0, 0, 0, 0, 0, 0],
+                    "enableSharpenLine" : [0, 0, 0, 0, 0, 0],
+                    "facblack" : [200, 200, 100, 50, 20, 20],
+                    "facwhite" : [200, 200, 150, 80, 40, 20],
+                    "maxblack" : [200, 200, 100, 100, 100, 100],
+                    "maxwhite" : [200, 200, 200, 200, 200, 200],
+                    "t1" : [0, 0, 0, 0, 0, 0],
+                    "t2" : [0, 0, 0, 0, 0, 0],
+                    "t3" : [0, 0, 0, 0, 0, 0],
+                    "t4" : [0, 0, 0, 0, 0, 0],
+                    "r1" : [0, 0, 0, 0, 0, 0],
+                    "r2" : [128, 128, 128, 128, 128, 128],
+                    "r3" : [256, 256, 256, 256, 256, 256],
+                    "gdenoise" : [0, 0, 0, 0, 0, 0],
+                    "gsharpen" : [16, 16, 16, 16, 16, 16],
+                    "sharpen_line_shift2" : [6, 6, 6, 6, 6, 6],
+                    "sharpen_line_shift1" : [5, 5, 5, 5, 5, 5],
+                    "sharpen_line_t1" : [1000, 1000, 1000, 1000, 1000, 1000],
+                    "sharpen_line_strength" : [100, 100, 100, 100, 100, 100],				
+                    "sharpen_line_r2" : [200, 200, 200, 200, 200, 200],
+                    "sharpen_line_r1" : [5, 5, 5, 5, 5, 5]
+                }
+            ]
+        },
+        {
+            "classname" : "AWdr4",
+            "forcecreate" : true,
+            "enable" : false,
+	    "disable" : true,
+            "backlight" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "backlight" : [0, 0.1, 0.2, 0.3, 0.4, 0.45],
+                    "strength" : [128, 128, 128, 128, 128, 128],
+                    "highStrength" : [20, 20, 20, 90, 90, 90],
+                    "lowStrength" : [4, 8, 16, 24, 45, 64],
+                    "globalStrength" : [0, 0, 0, 0, 0, 0],
+                    "contrast" : [800, 800, 800, 800, 800, 800],
+                    "flatStrength" : [0, 0, 0, 0, 0, 0],
+                    "flatThreshold" : [0, 0, 0, 0, 0, 0]
+                }
+            ],
+            "entropy_slope": 200,
+            "entropy_base": 700,
+            "entropy" : [0, 0, 0, 2, 3, 6, 11, 22, 39, 67, 111, 177, 227, 266, 321, 355, 377, 355, 221, 0],
+            "gamma_down" : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 9, 16, 36, 64, 136, 256, 576, 1023],
+            "gamma_up" : [0, 283121, 330313, 377512, 424723, 471961, 519250, 566650, 614235, 662241, 711077, 761540, 792420, 815280, 849436, 875575, 913530, 948975, 1002792, 1048575],
+            "?gamma_up" : [0, 1024, 34837, 56737, 82912, 116814, 162079, 223337, 306767, 420749, 576707, 735048, 745499, 755950, 776852, 797754, 839557, 881361, 964968, 1048575],
+            "gamma_pre" : [0, 31514, 36815, 42173, 47646, 53350, 59514, 66602, 75530, 88145, 108135, 142869, 175428, 207095, 269144, 330303, 442139, 571475, 810472, 1048575]
+        },
+        {
+
+            "classname" : "A3dnrv3",
+            "forcecreate" : false,
+            "enable" : false,
+	    "disable" : false,
+            "autonoiseLevel": true,
+            "tnr_en" : false,
+            "nlm_en" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [0, 0, 0, 0, 0, 0, 0],
+                    "gains" : [1, 2, 4, 8, 16, 32],
+                    "filterLen" : [100, 150, 200, 300, 400, 500],
+                    "filterLen2" : [10, 10, 10, 10, 10, 10],
+                    "motionSlope"  : [1, 1, 1, 1, 1, 1],
+                    "noiseLevel"  : [25, 40, 60, 80, 100, 120],
+                    "sadweight" : [8, 8, 8, 8, 8, 8],
+                    "motionInvFactor" : [20000, 20000, 20000, 20000, 20000, 20000],
+                    "noisemodel_a" : [0.45071, 0.85596, 1.561850, 2.219000, 3.9409, 5.2362],
+                    "noisemodel_b" : [0.000065, 9.7098, 140.351654,  219.965805, 284.8835, 344.9119],
+                    "autoStrength" : [1.5, 1.5, 1.5, 1.5, 1.5, 1.5],
+                    "motion_dilate_en" : [1, 1, 1, 1, 1, 1],
+                    "motion_erode_en" : [1, 1, 1, 1, 1, 1],
+                    "pregamma_en" : [1, 1, 1, 1, 1, 1],
+                    "strength" : [120, 120, 120, 120, 120, 120],
+                    "range_h" : [7, 7, 7, 7, 7, 7],
+                    "range_v" : [3, 3, 3, 3, 3, 3],
+                    "dialte_h" : [3, 3, 3, 3, 3, 3],
+                    "preweight" : [8, 8, 8, 8, 8, 8],
+                    "noise_thresh_factor" : [2, 2, 2, 2, 2, 2],
+                    "moving_pixel_thresh" : [1, 1, 1, 1, 1, 1]
+                }
+            ]
+        },
+        {
+            "classname" : "A2dnrv5",
+            "forcecreate" : true,
+            "enable" : true,
+            "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
+                    "sigma" : [2, 2, 2, 5, 6, 6, 11, 11, 11, 14],
+                    "blendstatic" : [100, 100, 100, 100, 100, 90, 90, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 90, 90, 100, 100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "strength" : [1, 1, 1, 1, 1, 1, 2, 2, 2, 2],
+                    "sigma" : [5, 5, 5, 8, 8, 8, 11, 11, 11, 14],
+                    "blendstatic" : [100, 100, 100, 100, 100, 100, 100, 35, 35, 40],
+                    "blendmotion" : [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+                }
+            ]
+        },
+        {
+            "classname" : "ADpf",
+            "forcecreate" : true,
+            "enable" : true,
+	    "disable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.1, 0.2, 0.4, 0.7, 1, 1.5, 2, 2.5, 3, 3.5],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [1, 1, 1, 1, 1, 1, 1, 2, 4, 16],
+                    "Div" : [64, 64, 64, 65, 65, 65, 65, 65, 65, 65],
+                    "sigma_g" : [2, 2, 3, 3, 3, 3, 4, 4, 4, 4],
+                    "sigma_rb" : [2, 2, 3, 3, 3, 3, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                },
+                {
+                    "hdr" : true,
+                    "enable" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "gains" : [1, 2, 4, 8, 12, 16, 20, 24, 32, 40],
+                    "gradient" : [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2],
+                    "offset" : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+                    "Min" : [16, 16, 16, 16, 16, 16, 16, 16, 16, 16],
+                    "Div" : [64, 64, 64, 64, 64, 64, 64, 64, 64, 64],
+                    "sigma_g" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "sigma_rb" : [4, 4, 4, 4, 4, 4, 4, 4, 4, 4],
+                    "curve" : [
+                        [4095, 4095, 3677, 3068, 2686, 2219, 1933, 1735, 1587, 1379, 1235, 1129,  979,  877,  801,  742,  695],
+                        [4095, 4056, 2910, 2388, 2073, 1697, 1471, 1317, 1203, 1042,  933,  852,  738,  660,  603,  558,  523],
+                        [3688, 2169, 1687, 1428, 1260, 1050,  918,  827,  758,  660,  592,  542,  470,  421,  385,  357,  335],
+                        [2254, 1553, 1258, 1085,  968,  816,  718,  649,  597,  521,  469,  430,  374,  335,  307,  284,  267],
+                        [1060,  883,  772,  695,  637,  555,  498,  455,  422,  373,  338,  311,  272,  245,  225,  209,  196],
+                        [580, 524, 481, 448, 420, 378, 346, 321, 301, 270, 247, 229, 202, 183, 168, 157, 148],
+                        [368, 346, 328, 312, 298, 276, 257, 242, 230, 209, 193, 181, 162, 147, 136, 127, 120],
+                        [214, 206, 199, 192, 186, 175, 166, 159, 152, 141, 132, 124, 112, 103,  96,  91,  86],
+                        [158, 152, 147, 142, 138, 130, 124, 118, 113, 105,  99,  93,  84,  78,  72,  68,  64],
+                        [127, 124, 121, 118, 115, 110, 106, 103,  99,  93,  88,  84,  77,  72,  68,  64,  61]
+                    ]
+                }
+            ]
+        },
+        {
+            "classname" : "ABlc",
+            "forcecreate" : true,
+            "enable" : true,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "blc" : [256, 256]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "blc" : [256, 256]
+                }
+            ]
+        },
+        {
+            "classname" : "AGe",
+            "forcecreate" : true,
+            "enable" : false,
+            "tables" : [
+                {
+                    "hdr" : false,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                },
+                {
+                    "hdr" : true,
+                    "gains" : [1, 16],
+                    "threshold" : [0, 0],
+                    "dummyline" : [100, 100]
+                }
+            ]
+        }
+    ]
+}

+ 5 - 51
drivers/SC2310/SC2310.c

@@ -49,6 +49,7 @@ static struct vvcam_mode_info psc2310_mode_info[] = {
         .bayer_pattern = BAYER_BGGR, //BAYER_RGGB, //BAYER_BGGR, //BAYER_GBRG, //, // BAYER_GRBG,
         .mipi_phy_freq = 395, //mbps
         .mipi_line_num = 2,
+        .config_file_3a = NULL,
         .preg_data = (void *)"sc2310 sensor liner mode, raw12, img resolution is 640*480",
     },
     {
@@ -61,6 +62,7 @@ static struct vvcam_mode_info psc2310_mode_info[] = {
         .bayer_pattern = BAYER_BGGR, //BAYER_RGGB, //BAYER_BGGR, //, //,  // BAYER_GRBG,
         .mipi_phy_freq = 395, //mbps
         .mipi_line_num = 2,
+        .config_file_3a = "SC2310_1920x1088_raw12", //3aconfig_SC2310_1920x1088_raw12.json
         .preg_data = (void *)"sc2310 sensor liner mode, raw12, img resolution is 1920*1088",
     },
     {
@@ -73,6 +75,7 @@ static struct vvcam_mode_info psc2310_mode_info[] = {
         .bayer_pattern = BAYER_BGGR,
         .mipi_phy_freq = 371, //mbps
         .mipi_line_num = 2,
+        .config_file_3a = NULL,
         .preg_data = (void *)"sc2310 sensor liner mode, raw10, img resolution is 1920*1080",
     },
     {
@@ -85,6 +88,7 @@ static struct vvcam_mode_info psc2310_mode_info[] = {
         .bayer_pattern = BAYER_BGGR,
         .mipi_phy_freq = 320, //mbps
         .mipi_line_num = 2,
+        .config_file_3a = "SC2310_1440x1080_raw10",  //3aconfig_SC2310_1440x1080_raw10.json
         .preg_data = (void *)"sc2310 sensor liner mode, raw10, img resolution is 1440*1080",
     },
 };
@@ -274,38 +278,6 @@ static RESULT SC2310_IsiSensorGetClkIss
 static RESULT SC2310_IsiConfigSensorSCCBIss(IsiSensorHandle_t handle)
 {
     RESULT result = RET_SUCCESS;
-    int ret = 0;
-    TRACE(SC2310_INFO, "%s (enter)\n", __func__);
-
-    SC2310_Context_t *pSC2310Ctx = (SC2310_Context_t *) handle;
-    if (pSC2310Ctx == NULL || pSC2310Ctx->IsiCtx.HalHandle == NULL) {
-        return RET_NULL_POINTER;
-    }
-
-    HalContext_t *pHalCtx = (HalContext_t *) pSC2310Ctx->IsiCtx.HalHandle;
-
-    static const IsiSccbInfo_t SensorSccbInfo = {
-        .slave_addr = (0x30),  //0x30 or 0x32
-        .addr_byte = 2,
-        .data_byte = 1,
-    };
-
-    struct vvcam_sccb_cfg_s sensor_sccb_config;
-    sensor_sccb_config.slave_addr = SensorSccbInfo.slave_addr;
-    sensor_sccb_config.addr_byte = SensorSccbInfo.addr_byte;
-    sensor_sccb_config.data_byte = SensorSccbInfo.data_byte;
-
-    ret = ioctl(pHalCtx->sensor_fd, VVSENSORIOC_SENSOR_SCCB_CFG,
-          &sensor_sccb_config);
-    if (ret != 0) {
-        TRACE(SC2310_ERROR, "%s: sensor config sccb info error!\n",
-              __func__);
-        return (RET_FAILURE);
-    }
-
-    TRACE(SC2310_INFO, "%s (exit) result = %d\n", __func__, result);
-    return (result);
-
     return RET_SUCCESS;
 }
 #endif
@@ -473,7 +445,7 @@ static RESULT SC2310_IsiCreateSensorIss(IsiSensorInstanceConfig_t * pConfig) {
                 break;
             case 3:
                 strcat(pSC2310Ctx->SensorRegCfgFile,
-                    "SC2310_mipi2lane_1440x1080_raw12_30fps_init.txt");
+                    "SC2310_mipi2lane_1440x1080_raw10_30fps_init.txt");
                 break;
             default:
                 break;
@@ -714,24 +686,6 @@ static RESULT SC2310_IsiSetupSensorIss
 
     memcpy(&pSC2310Ctx->Config, pConfig, sizeof(IsiSensorConfig_t));
 
-    /* 1.) SW reset of image sensor (via I2C register interface)  be careful, bits 6..0 are reserved, reset bit is not sticky */
-    TRACE(SC2310_DEBUG, "%s: SC2310 System-Reset executed\n", __func__);
-    osSleep(100);
-
-    //SC2310_AecSetModeParameters not defined yet as of 2021/8/9.
-    //result = SC2310_AecSetModeParameters(pSC2310Ctx, pConfig);
-    //if (result != RET_SUCCESS) {
-    //    TRACE(SC2310_ERROR, "%s: SetupOutputWindow failed.\n",
-    //          __func__);
-    //    return (result);
-    //}
-#if 1
-    struct sc2310_fmt fmt;
-    fmt.width = pConfig->Resolution.width;
-    fmt.height = pConfig->Resolution.height;
-
-    ioctl(pHalCtx->sensor_fd, VVSENSORIOC_S_FPS, &fmt);//result = ioctl(pHalCtx->sensor_fd, VVSENSORIOC_S_FPS, &fmt);
-#endif
     pSC2310Ctx->Configured = BOOL_TRUE;
     TRACE(SC2310_INFO, "%s: (exit) ret=0x%x \n", __func__, result);
     return result;

+ 14 - 14
drivers/SC2310/SC2310_1440x1080.xml

@@ -663,10 +663,10 @@
                [ 15]
             </LSC_Yo>
             <LSC_SECT_SIZE_X index="1" type="double" size="[1 8]">
-               [118 86 86 86 86 86 86 86]
+               [90 90 90 90 90 90 90 90]
             </LSC_SECT_SIZE_X>
             <LSC_SECT_SIZE_Y index="1" type="double" size="[1 8]">
-               [89 65 65 65 64 64 64 64]
+               [69 65 66 65 65 65 66 65]
             </LSC_SECT_SIZE_Y>
             <vignetting index="1" type="double" size="[1 1]">
                [ 90]
@@ -707,10 +707,10 @@
                [ 15]
             </LSC_Yo>
             <LSC_SECT_SIZE_X index="1" type="double" size="[1 8]">
-               [118 86 86 86 86 86 86 86]
+               [90 90 90 90 90 90 90 90]
             </LSC_SECT_SIZE_X>
             <LSC_SECT_SIZE_Y index="1" type="double" size="[1 8]">
-               [89 65 65 65 64 64 64 64]
+               [69 65 66 65 65 65 66 65]
             </LSC_SECT_SIZE_Y>
             <vignetting index="1" type="double" size="[1 1]">
                [ 90]
@@ -751,10 +751,10 @@
                [ 15]
             </LSC_Yo>
             <LSC_SECT_SIZE_X index="1" type="double" size="[1 8]">
-               [118 86 86 86 86 86 86 86]
+               [90 90 90 90 90 90 90 90]
             </LSC_SECT_SIZE_X>
             <LSC_SECT_SIZE_Y index="1" type="double" size="[1 8]">
-               [89 65 65 65 64 64 64 64]
+               [69 65 66 65 65 65 66 65]
             </LSC_SECT_SIZE_Y>
             <vignetting index="1" type="double" size="[1 1]">
                [ 90]
@@ -795,10 +795,10 @@
                [ 15]
             </LSC_Yo>
             <LSC_SECT_SIZE_X index="1" type="double" size="[1 8]">
-               [118 86 86 86 86 86 86 86]
+               [90 90 90 90 90 90 90 90]
             </LSC_SECT_SIZE_X>
             <LSC_SECT_SIZE_Y index="1" type="double" size="[1 8]">
-               [89 65 65 65 64 64 64 64]
+               [69 65 66 65 65 65 66 65]
             </LSC_SECT_SIZE_Y>
             <vignetting index="1" type="double" size="[1 1]">
                [ 90]
@@ -839,10 +839,10 @@
                [ 15]
             </LSC_Yo>
             <LSC_SECT_SIZE_X index="1" type="double" size="[1 8]">
-               [118 86 86 86 86 86 86 86]
+               [90 90 90 90 90 90 90 90]
             </LSC_SECT_SIZE_X>
             <LSC_SECT_SIZE_Y index="1" type="double" size="[1 8]">
-               [89 65 65 65 64 64 64 64]
+               [69 65 66 65 65 65 66 65]
             </LSC_SECT_SIZE_Y>
             <vignetting index="1" type="double" size="[1 1]">
                [ 90]
@@ -883,10 +883,10 @@
                [ 15]
             </LSC_Yo>
             <LSC_SECT_SIZE_X index="1" type="double" size="[1 8]">
-               [118 86 86 86 86 86 86 86]
+               [90 90 90 90 90 90 90 90]
             </LSC_SECT_SIZE_X>
             <LSC_SECT_SIZE_Y index="1" type="double" size="[1 8]">
-               [89 65 65 65 64 64 64 64]
+               [69 65 66 65 65 65 66 65]
             </LSC_SECT_SIZE_Y>
             <vignetting index="1" type="double" size="[1 1]">
                [ 90]
@@ -927,10 +927,10 @@
                [ 15]
             </LSC_Yo>
             <LSC_SECT_SIZE_X index="1" type="double" size="[1 8]">
-               [118 86 86 86 86 86 86 86]
+               [90 90 90 90 90 90 90 90]
             </LSC_SECT_SIZE_X>
             <LSC_SECT_SIZE_Y index="1" type="double" size="[1 8]">
-               [89 65 65 65 64 64 64 64]
+               [69 65 66 65 65 65 66 65]
             </LSC_SECT_SIZE_Y>
             <vignetting index="1" type="double" size="[1 1]">
                [ 90]

File diff suppressed because it is too large
+ 674 - 0
drivers/SC2310/SC2310_640x480.xml


+ 0 - 0
drivers/SC2310/SC2310_mipi2lane_1440x1080_raw12_30fps_init.txt → drivers/SC2310/SC2310_mipi2lane_1440x1080_raw10_30fps_init.txt


Some files were not shown because too many files changed in this diff