From patchwork Fri Nov 13 09:28:01 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Emfox Zhou X-Patchwork-Id: 28886 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id DE27EC3304 for ; Fri, 13 Nov 2026 09:28:11 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id E11396A803; Fri, 13 Nov 2026 10:28:10 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=debian.org header.i=@debian.org header.b="Z6lmraam"; dkim-atps=neutral Received: from stravinsky.debian.org (stravinsky.debian.org [IPv6:2001:41b8:202:deb::311:108]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 57A2C6A7FC for ; Fri, 13 Nov 2026 10:28:09 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debian.org; s=smtpauto.stravinsky; h=X-Debian-User:MIME-Version:Content-Transfer-Encoding :Content-Type:Cc:To:Message-ID:Date:Subject:From:Reply-To:Content-ID: Content-Description:In-Reply-To:References; bh=y891U2wpjxEe+MPfqUvLZlejI5tuFZee6J4V1+d3M7o=; b=Z6lmraamjGVb8Q5LTqKCa1Updg T1aaZd7zTXtHaq5MSI8M1ZvOtf9BYCcPcBbos+nFsxKKA2wYXSIwN4x3vHF07HFIPfhPYwo2Ux5go dbtC1+wYU1L/qR60V+iCZsEH6irbmYDK6VI8T8qi9ZZ3lyfjtN38RWiOsGo2lakrV9cn6lSCbmVp9 wIRPMlLeu2IzT1ZFXlVEzL8+1xVvbOmcHcG08kxPDE3M/9ddBM7xx0m9/M+KJVx/5h6yOS+TbyKDT 2fWN3F/99zccdupYdpeqcTNBzWmfMWnelOIeJoplnEafOWkBuLGj8yoUFvrseqk8lyFLgNEzuTRzF auAl1M8w==; Received: from authenticated-user by stravinsky.debian.org with esmtpsa (TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim 4.96) (envelope-from ) id 1xRnZo-00EeHW-0X; Fri, 13 Nov 2026 09:28:08 +0000 From: Emfox Zhou Subject: [PATCH v3] ipa: softisp: Add tuning data for the ov13858 and ov5693 Date: Fri, 13 Nov 2026 17:28:01 +0800 Message-ID: <179456208195.3.5239984334762098372@debian.org> To: libcamera-devel@lists.libcamera.org Cc: Kieran Bingham , Laurent Pinchart MIME-Version: 1.0 X-Debian-User: emfox X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Both sensors are the cameras of the Surface Pro 8, the ov13858 at the back and the ov5693 in front, behind the Intel IPU6. With no tuning file of their own they fall back to uncalibrated.yaml, which has grey world AWB and no colour correction: the gains come from the average of the scene rather than from the illuminant, and nothing puts the colours back. The values are taken from the AIQB blob shipped with the Windows camera driver of this machine. The AWB gains cover six light sources from 2514 K to 6366 K for the ov13858 and seven from 2592 K to 6905 K for the ov5693; each gain is the inverse of the calibrated white point of its source, and the priors give every source the same probability. The colour matrices are the traditional matrices of the same sources, one per source, and are copied as they are; every row sums to 1.000, so a neutral surface stays neutral. The lens shading grid cannot be copied. The blob stores 63x47 values per Bayer channel per light source in Q11 fixed point, 2048 being 1.0, while the software ISP interpolates a 17x17 grid of UQ<2,6> bytes, where 64 is 1.0 and the largest gain a cell can hold is 3.98. The tables are resampled to that grid, normalised on the centre of each channel and rounded to whole numbers. The corner gains in the blob run from 6.9x to 8.8x on the ov13858, so every set is clipped at 3.98 and the corners stay under-corrected; on the ov5693 they run from 3.2x to 4.5x, and the table, averaging the two green channels, tops out at 3.7x, so nothing is clipped. The blob carries ten light sources for the ov13858 and five for the ov5693; grouped by white point into five sets each, the grids that share a colour temperature are averaged. The rear sensor has no grid at 2870 K, the front none at 3763 K or 6905 K. The section follows Awb, as it keys the grid on the colour temperature AWB reports. Tested on a Surface Pro 8 with the software ISP, at 1280x960 on the rear sensor and 2584x1944 on the front. v2 left the matrices out for lack of a chart to check them against. That is still true, but they come from the same calibration as the gains, and without them the sensor response is never undone. Signed-off-by: Emfox Zhou --- Changes in v3: - Add the lens shading tables and the colour matrices, which v2 left out. src/ipa/softisp/data/meson.build | 2 + src/ipa/softisp/data/ov13858.yaml | 369 +++++++++++++++++++++++++++++ src/ipa/softisp/data/ov5693.yaml | 376 ++++++++++++++++++++++++++++++ 3 files changed, 747 insertions(+) create mode 100644 src/ipa/softisp/data/ov13858.yaml create mode 100644 src/ipa/softisp/data/ov5693.yaml diff --git a/src/ipa/softisp/data/meson.build b/src/ipa/softisp/data/meson.build index fd9aa0f..c775edd 100644 --- a/src/ipa/softisp/data/meson.build +++ b/src/ipa/softisp/data/meson.build @@ -1,6 +1,8 @@ # SPDX-License-Identifier: CC0-1.0 conf_files = files([ + 'ov13858.yaml', + 'ov5693.yaml', 'uncalibrated.yaml', ]) diff --git a/src/ipa/softisp/data/ov13858.yaml b/src/ipa/softisp/data/ov13858.yaml new file mode 100644 index 0000000..46e91a2 --- /dev/null +++ b/src/ipa/softisp/data/ov13858.yaml @@ -0,0 +1,369 @@ +# SPDX-License-Identifier: CC0-1.0 +# Calibrated from the AIQB blob shipped with the Windows camera driver of +# the Surface Pro 8 rear camera. The colour gains are the inverse of the +# white point of each light source, and the lens shading and colour matrix +# tables come from the same blob, so all three agree with each other. +%YAML 1.1 +--- +version: 1 +algorithms: + - BlackLevel: + - Awb: + algorithm: bayes + # Colour gains and matrices are the calibrated values of the + # vendor aiqb of the ov13858; each gain is the inverse of the + # white point of its light source, so both agree. + colourGains: + - ct: 2514 + gains: [ 0.98170, 2.13768 ] + - ct: 2848 + gains: [ 1.14056, 2.09252 ] + - ct: 2870 + gains: [ 1.12076, 1.99113 ] + - ct: 3786 + gains: [ 1.43880, 1.69755 ] + - ct: 5438 + gains: [ 1.71317, 1.40488 ] + - ct: 6366 + gains: [ 1.95238, 1.30021 ] + # Flat priors: there are no illuminant statistics for these + # modules, so every calibrated source is equally likely. + priors: + - lux: 0 + ct: [ 2514, 2848, 2870, 3786, 5438, 6366 ] + probability: [ 0.166667, 0.166667, 0.166667, 0.166667, 0.166667, 0.166667 ] + - lux: 100 + ct: [ 2514, 2848, 2870, 3786, 5438, 6366 ] + probability: [ 0.166667, 0.166667, 0.166667, 0.166667, 0.166667, 0.166667 ] + AwbMode: + Auto: + lo: 2314 + hi: 7266 + - Lsc: + type: table + sets: + - ct: 2514 + r: [ + 255, 255, 230, 194, 169, 152, 141, 134, 132, 134, 141, 153, 170, 195, 231, 255, 255, + 255, 250, 205, 174, 152, 136, 124, 117, 115, 117, 124, 136, 153, 175, 207, 253, 255, + 255, 229, 186, 158, 137, 121, 110, 103, 101, 103, 110, 121, 138, 159, 188, 231, 255, + 255, 211, 172, 146, 125, 109, 98, 91, 89, 91, 98, 109, 125, 147, 174, 213, 255, + 248, 197, 162, 136, 115, 99, 88, 82, 79, 82, 88, 99, 115, 136, 163, 199, 251, + 237, 187, 153, 128, 107, 92, 81, 74, 72, 74, 81, 92, 108, 128, 155, 189, 239, + 229, 181, 148, 122, 102, 87, 76, 70, 68, 69, 75, 86, 102, 123, 149, 182, 230, + 224, 177, 145, 119, 99, 84, 73, 67, 65, 67, 72, 83, 99, 120, 146, 179, 225, + 223, 176, 144, 118, 98, 83, 72, 66, 64, 66, 72, 82, 98, 119, 145, 178, 224, + 225, 178, 146, 120, 100, 84, 73, 67, 65, 67, 73, 84, 100, 120, 147, 180, 226, + 231, 182, 149, 124, 103, 88, 76, 70, 68, 70, 76, 87, 103, 124, 151, 184, 232, + 239, 189, 156, 130, 109, 93, 82, 76, 73, 75, 82, 93, 109, 130, 157, 191, 241, + 252, 200, 164, 138, 117, 101, 90, 83, 81, 83, 90, 102, 118, 139, 166, 202, 253, + 255, 215, 176, 149, 128, 112, 100, 94, 92, 94, 101, 112, 128, 150, 177, 217, 255, + 255, 234, 190, 162, 140, 124, 113, 106, 104, 106, 113, 125, 141, 163, 192, 236, 255, + 255, 254, 210, 178, 156, 140, 128, 121, 119, 121, 128, 140, 157, 180, 212, 255, 255, + 255, 255, 236, 199, 174, 157, 145, 138, 136, 139, 146, 158, 175, 200, 238, 255, 255, + ] + g: [ + 255, 255, 237, 204, 177, 159, 146, 139, 136, 139, 146, 160, 179, 206, 239, 255, 255, + 255, 248, 218, 183, 159, 141, 128, 121, 118, 121, 128, 141, 160, 185, 220, 250, 255, + 255, 237, 198, 167, 143, 125, 113, 105, 103, 105, 113, 126, 144, 168, 200, 239, 255, + 254, 225, 183, 154, 130, 112, 100, 93, 90, 93, 100, 113, 131, 155, 185, 227, 254, + 248, 211, 172, 143, 120, 102, 90, 82, 80, 82, 90, 102, 120, 144, 174, 214, 249, + 242, 200, 164, 135, 112, 94, 82, 75, 72, 75, 82, 94, 112, 136, 165, 203, 244, + 239, 194, 158, 129, 106, 88, 76, 70, 68, 70, 76, 88, 106, 130, 160, 196, 240, + 235, 190, 154, 126, 103, 85, 73, 67, 65, 67, 73, 85, 103, 127, 156, 192, 237, + 235, 189, 153, 125, 102, 84, 72, 66, 64, 66, 72, 84, 102, 126, 155, 192, 236, + 236, 190, 155, 126, 103, 86, 73, 67, 65, 67, 73, 85, 103, 127, 157, 193, 238, + 239, 195, 159, 130, 107, 89, 77, 70, 68, 70, 76, 89, 107, 131, 161, 197, 240, + 243, 202, 165, 136, 113, 95, 82, 75, 73, 75, 82, 95, 113, 137, 167, 205, 245, + 249, 213, 174, 145, 121, 103, 91, 83, 81, 83, 91, 103, 121, 146, 176, 216, 250, + 254, 227, 185, 156, 132, 114, 101, 94, 92, 94, 101, 114, 133, 157, 188, 229, 255, + 255, 239, 201, 169, 145, 127, 115, 107, 105, 107, 115, 128, 146, 171, 203, 240, 255, + 255, 250, 221, 186, 162, 144, 131, 123, 121, 123, 131, 144, 163, 188, 223, 251, 255, + 255, 255, 239, 208, 181, 162, 149, 142, 139, 142, 150, 163, 182, 210, 240, 255, 255, + ] + b: [ + 255, 255, 233, 195, 170, 152, 139, 132, 130, 132, 140, 153, 171, 197, 235, 255, 255, + 255, 253, 209, 176, 153, 135, 123, 116, 113, 116, 123, 136, 154, 178, 211, 255, 255, + 255, 234, 190, 161, 138, 121, 109, 102, 100, 102, 110, 122, 139, 162, 192, 237, 255, + 255, 216, 176, 149, 127, 110, 98, 91, 88, 91, 98, 110, 127, 150, 179, 219, 255, + 253, 203, 166, 139, 117, 100, 89, 81, 79, 81, 89, 101, 118, 140, 168, 206, 255, + 244, 193, 158, 131, 110, 93, 81, 74, 72, 74, 81, 93, 110, 132, 160, 196, 248, + 236, 186, 153, 126, 105, 88, 76, 70, 68, 70, 76, 88, 105, 127, 154, 189, 240, + 232, 183, 150, 123, 102, 85, 73, 67, 65, 67, 73, 85, 102, 124, 151, 185, 235, + 230, 182, 149, 122, 101, 84, 72, 66, 64, 66, 72, 84, 101, 123, 150, 184, 233, + 232, 183, 150, 123, 102, 85, 73, 67, 65, 67, 73, 85, 102, 124, 152, 186, 235, + 237, 187, 153, 127, 105, 88, 76, 70, 68, 70, 76, 88, 105, 127, 155, 190, 241, + 246, 194, 159, 132, 110, 94, 82, 75, 72, 74, 82, 94, 111, 133, 161, 197, 250, + 254, 204, 167, 140, 118, 101, 89, 82, 79, 82, 89, 101, 119, 141, 169, 207, 255, + 255, 218, 178, 150, 128, 111, 99, 91, 89, 91, 99, 111, 128, 151, 180, 221, 255, + 255, 237, 192, 162, 140, 122, 110, 103, 101, 103, 111, 123, 141, 164, 194, 240, 255, + 255, 254, 211, 177, 154, 137, 124, 117, 115, 117, 125, 137, 155, 179, 213, 255, 255, + 255, 255, 235, 197, 171, 153, 141, 133, 131, 134, 141, 154, 173, 199, 238, 255, 255, + ] + - ct: 2848 + r: [ + 255, 255, 218, 183, 160, 144, 133, 127, 125, 127, 133, 144, 160, 183, 218, 255, 255, + 255, 237, 195, 165, 144, 129, 118, 112, 110, 112, 118, 129, 144, 165, 195, 238, 255, + 255, 217, 177, 150, 130, 116, 105, 99, 97, 99, 105, 116, 130, 150, 177, 217, 255, + 249, 200, 163, 138, 119, 105, 95, 89, 87, 89, 95, 105, 119, 139, 164, 200, 250, + 236, 187, 153, 129, 110, 96, 86, 80, 78, 80, 86, 96, 110, 129, 154, 187, 236, + 225, 178, 146, 122, 103, 89, 79, 74, 72, 74, 79, 89, 103, 122, 146, 178, 225, + 217, 172, 141, 117, 99, 85, 75, 69, 67, 69, 75, 84, 98, 117, 141, 172, 217, + 213, 168, 138, 114, 96, 82, 72, 67, 65, 67, 72, 82, 96, 114, 138, 169, 212, + 212, 167, 137, 114, 95, 81, 71, 66, 64, 66, 71, 81, 95, 114, 137, 168, 211, + 214, 169, 139, 115, 96, 82, 73, 67, 65, 67, 72, 82, 96, 115, 139, 169, 213, + 219, 173, 142, 118, 100, 86, 76, 70, 68, 70, 75, 85, 100, 118, 142, 173, 219, + 227, 180, 148, 124, 105, 91, 81, 75, 73, 75, 81, 91, 105, 124, 148, 180, 227, + 239, 190, 156, 132, 112, 98, 88, 82, 80, 82, 88, 98, 112, 132, 156, 190, 239, + 253, 204, 167, 141, 122, 107, 97, 91, 89, 91, 97, 107, 122, 142, 167, 204, 254, + 255, 221, 181, 154, 134, 119, 109, 102, 100, 102, 108, 119, 134, 154, 181, 222, 255, + 255, 243, 199, 169, 148, 133, 122, 116, 114, 116, 122, 133, 148, 169, 200, 244, 255, + 255, 255, 224, 189, 165, 149, 138, 132, 129, 132, 138, 149, 165, 189, 224, 255, 255, + ] + g: [ + 255, 248, 215, 180, 157, 141, 130, 124, 122, 124, 130, 141, 157, 181, 215, 249, 255, + 255, 236, 193, 162, 141, 126, 116, 110, 108, 109, 116, 126, 141, 163, 193, 237, 255, + 251, 216, 175, 148, 128, 113, 103, 97, 95, 97, 103, 113, 128, 148, 175, 216, 252, + 244, 199, 162, 137, 117, 103, 93, 87, 85, 87, 93, 103, 117, 137, 163, 200, 245, + 236, 186, 153, 128, 109, 95, 85, 79, 77, 79, 85, 95, 109, 128, 153, 187, 236, + 225, 177, 145, 121, 103, 88, 79, 73, 71, 73, 78, 88, 102, 121, 146, 178, 225, + 217, 171, 140, 117, 98, 84, 74, 69, 67, 69, 74, 84, 98, 117, 141, 172, 217, + 213, 168, 137, 114, 96, 82, 72, 66, 65, 66, 72, 81, 95, 114, 138, 169, 213, + 211, 167, 137, 113, 95, 81, 71, 66, 64, 66, 71, 80, 95, 113, 137, 168, 211, + 213, 168, 138, 114, 96, 82, 72, 67, 65, 66, 72, 81, 96, 114, 138, 169, 214, + 218, 172, 141, 117, 99, 85, 75, 69, 67, 69, 74, 84, 99, 118, 142, 173, 218, + 226, 179, 147, 122, 104, 89, 79, 73, 72, 73, 79, 89, 103, 123, 147, 179, 227, + 238, 188, 154, 130, 110, 96, 86, 80, 78, 80, 86, 96, 110, 130, 155, 189, 239, + 246, 202, 164, 139, 119, 105, 95, 89, 87, 89, 94, 105, 119, 139, 165, 202, 246, + 252, 219, 178, 151, 130, 116, 105, 99, 97, 99, 105, 115, 130, 151, 178, 220, 253, + 255, 240, 196, 165, 144, 129, 118, 112, 110, 112, 118, 129, 144, 166, 196, 240, 255, + 255, 250, 219, 184, 160, 145, 134, 127, 125, 127, 134, 145, 161, 184, 220, 251, 255, + ] + b: [ + 255, 255, 220, 185, 161, 144, 132, 126, 123, 126, 133, 144, 161, 185, 221, 255, 255, + 255, 242, 198, 167, 145, 129, 118, 111, 109, 111, 118, 129, 145, 167, 198, 243, 255, + 255, 222, 180, 152, 132, 116, 105, 99, 96, 99, 105, 116, 132, 153, 181, 222, 255, + 254, 205, 167, 141, 121, 106, 95, 88, 86, 88, 95, 106, 121, 141, 168, 206, 255, + 242, 192, 157, 132, 112, 97, 86, 80, 78, 80, 86, 97, 112, 132, 158, 193, 243, + 231, 182, 150, 125, 105, 91, 80, 74, 72, 74, 80, 90, 105, 125, 150, 183, 232, + 223, 176, 145, 120, 101, 86, 75, 69, 67, 69, 75, 86, 101, 120, 145, 177, 224, + 219, 173, 142, 118, 98, 83, 73, 67, 65, 67, 73, 83, 98, 117, 142, 174, 219, + 217, 172, 141, 117, 97, 82, 72, 66, 64, 66, 72, 82, 97, 117, 141, 173, 218, + 219, 173, 142, 118, 98, 83, 73, 67, 65, 67, 73, 83, 98, 118, 143, 174, 220, + 224, 177, 145, 121, 101, 86, 76, 70, 68, 69, 75, 86, 101, 121, 146, 178, 225, + 232, 184, 151, 126, 106, 91, 80, 74, 72, 74, 80, 91, 106, 126, 151, 184, 233, + 244, 193, 158, 133, 113, 98, 87, 81, 78, 80, 87, 98, 113, 133, 159, 194, 245, + 255, 207, 168, 142, 122, 107, 96, 89, 87, 89, 96, 107, 122, 143, 169, 207, 255, + 255, 224, 182, 154, 133, 117, 106, 100, 98, 100, 106, 117, 133, 154, 183, 225, 255, + 255, 245, 200, 168, 147, 131, 119, 112, 110, 112, 119, 131, 147, 169, 201, 246, 255, + 255, 255, 223, 187, 163, 146, 134, 127, 125, 127, 134, 146, 163, 188, 224, 255, 255, + ] + - ct: 3786 + r: [ + 255, 255, 222, 187, 163, 147, 135, 129, 126, 128, 135, 147, 163, 187, 222, 255, 255, + 255, 243, 199, 168, 147, 131, 120, 113, 111, 113, 120, 131, 147, 168, 199, 243, 255, + 255, 222, 181, 153, 133, 117, 106, 100, 98, 100, 106, 117, 133, 153, 181, 222, 255, + 255, 205, 167, 141, 121, 106, 96, 89, 87, 89, 95, 106, 121, 141, 167, 205, 255, + 241, 192, 157, 132, 112, 97, 87, 80, 78, 80, 86, 97, 112, 132, 157, 192, 241, + 230, 182, 149, 125, 105, 90, 80, 74, 72, 73, 79, 90, 105, 124, 150, 182, 230, + 223, 176, 144, 119, 100, 85, 75, 69, 67, 69, 75, 85, 100, 119, 144, 176, 222, + 218, 172, 141, 117, 97, 82, 72, 67, 65, 66, 72, 82, 97, 116, 141, 172, 217, + 217, 171, 140, 116, 96, 82, 71, 66, 64, 66, 71, 81, 96, 116, 140, 172, 216, + 219, 173, 142, 117, 98, 83, 73, 67, 65, 67, 72, 82, 97, 117, 142, 173, 218, + 224, 177, 145, 121, 101, 86, 76, 70, 68, 70, 75, 86, 101, 120, 145, 177, 223, + 233, 184, 151, 126, 106, 92, 81, 75, 73, 74, 80, 91, 106, 126, 151, 184, 232, + 244, 194, 159, 134, 114, 99, 88, 82, 80, 82, 88, 99, 114, 134, 159, 194, 244, + 255, 208, 170, 144, 124, 108, 98, 91, 89, 91, 97, 108, 124, 144, 170, 208, 255, + 255, 226, 184, 157, 136, 120, 109, 103, 101, 103, 109, 120, 136, 157, 184, 226, 255, + 255, 248, 203, 172, 150, 134, 123, 117, 114, 117, 123, 134, 150, 172, 203, 249, 255, + 255, 255, 227, 192, 168, 151, 139, 133, 130, 133, 139, 151, 168, 192, 227, 255, 255, + ] + g: [ + 255, 250, 217, 182, 158, 142, 131, 125, 123, 125, 131, 142, 158, 182, 217, 251, 255, + 255, 238, 195, 164, 143, 127, 116, 110, 108, 110, 116, 127, 142, 164, 194, 239, 255, + 253, 218, 177, 149, 129, 114, 104, 98, 96, 97, 103, 114, 129, 149, 177, 218, 253, + 246, 201, 163, 138, 118, 104, 93, 87, 85, 87, 93, 103, 118, 138, 164, 201, 246, + 237, 188, 154, 129, 110, 95, 85, 79, 77, 79, 85, 95, 109, 129, 154, 188, 237, + 227, 179, 146, 122, 103, 89, 79, 73, 71, 73, 78, 88, 103, 122, 146, 179, 226, + 219, 172, 141, 117, 98, 84, 74, 69, 67, 69, 74, 84, 98, 117, 141, 173, 218, + 214, 169, 138, 115, 96, 82, 72, 66, 65, 66, 71, 81, 95, 114, 139, 169, 214, + 213, 168, 138, 114, 95, 81, 71, 66, 64, 66, 71, 80, 95, 114, 138, 169, 213, + 215, 169, 139, 115, 96, 82, 72, 67, 65, 66, 72, 81, 96, 115, 139, 170, 215, + 220, 173, 142, 118, 99, 85, 75, 69, 67, 69, 74, 84, 99, 118, 142, 174, 220, + 228, 180, 148, 123, 104, 90, 79, 73, 71, 73, 79, 89, 104, 123, 148, 180, 228, + 240, 190, 155, 130, 111, 96, 86, 80, 78, 80, 86, 96, 111, 130, 156, 190, 240, + 248, 203, 166, 140, 120, 105, 95, 89, 87, 89, 95, 105, 120, 140, 166, 204, 247, + 254, 221, 179, 152, 131, 116, 106, 100, 97, 99, 105, 116, 131, 152, 179, 222, 255, + 255, 242, 198, 167, 145, 130, 119, 113, 110, 112, 119, 130, 145, 167, 198, 242, 255, + 255, 252, 221, 186, 162, 146, 134, 128, 126, 128, 134, 146, 162, 186, 221, 252, 255, + ] + b: [ + 255, 255, 224, 188, 164, 147, 135, 128, 126, 128, 135, 147, 164, 188, 225, 255, 255, + 255, 246, 201, 169, 148, 131, 120, 113, 111, 113, 120, 131, 148, 170, 201, 247, 255, + 255, 225, 183, 155, 134, 118, 107, 100, 98, 100, 107, 118, 134, 155, 183, 226, 255, + 255, 208, 169, 143, 122, 107, 96, 89, 87, 89, 96, 107, 122, 143, 170, 208, 255, + 245, 195, 159, 134, 113, 98, 87, 80, 78, 80, 87, 98, 113, 134, 160, 195, 246, + 234, 185, 152, 126, 106, 91, 80, 74, 72, 74, 80, 91, 106, 126, 152, 186, 235, + 226, 179, 147, 121, 102, 86, 75, 69, 67, 69, 75, 86, 101, 121, 147, 179, 227, + 222, 175, 143, 119, 99, 83, 73, 67, 65, 67, 72, 83, 98, 118, 144, 176, 222, + 220, 174, 143, 118, 98, 83, 72, 66, 64, 66, 71, 82, 97, 117, 143, 175, 220, + 222, 175, 144, 119, 99, 84, 73, 67, 65, 67, 72, 83, 98, 119, 144, 176, 222, + 227, 179, 147, 122, 102, 87, 76, 70, 67, 69, 75, 86, 101, 122, 147, 180, 228, + 236, 186, 153, 127, 107, 92, 80, 74, 72, 74, 80, 91, 107, 127, 153, 186, 236, + 247, 196, 161, 135, 114, 99, 87, 81, 79, 81, 87, 98, 114, 135, 161, 196, 248, + 255, 210, 171, 144, 124, 108, 97, 90, 88, 90, 96, 107, 123, 144, 171, 210, 255, + 255, 227, 185, 156, 135, 119, 108, 101, 99, 101, 108, 119, 135, 157, 185, 228, 255, + 255, 249, 203, 171, 149, 133, 121, 114, 112, 114, 121, 133, 149, 172, 204, 250, 255, + 255, 255, 227, 190, 166, 149, 137, 130, 128, 130, 137, 149, 166, 190, 227, 255, 255, + ] + - ct: 5438 + r: [ + 255, 255, 224, 188, 163, 147, 135, 128, 126, 128, 134, 146, 162, 187, 222, 255, 255, + 255, 246, 201, 169, 147, 131, 119, 113, 110, 112, 119, 130, 146, 168, 199, 244, 255, + 255, 225, 183, 154, 133, 117, 106, 100, 97, 99, 106, 117, 132, 153, 181, 223, 255, + 255, 208, 169, 143, 122, 106, 95, 89, 87, 89, 95, 106, 121, 142, 168, 206, 255, + 246, 194, 159, 133, 113, 97, 87, 80, 78, 80, 86, 97, 112, 132, 158, 193, 243, + 235, 185, 151, 126, 106, 90, 80, 73, 71, 73, 79, 90, 105, 125, 150, 183, 232, + 227, 179, 146, 121, 101, 86, 75, 69, 67, 69, 74, 85, 100, 120, 145, 177, 224, + 223, 175, 143, 118, 98, 83, 72, 67, 65, 66, 72, 82, 97, 117, 142, 174, 219, + 221, 174, 142, 117, 97, 82, 72, 66, 64, 66, 71, 81, 96, 116, 141, 173, 218, + 224, 176, 144, 119, 99, 83, 73, 67, 65, 67, 72, 82, 98, 117, 143, 175, 221, + 229, 180, 148, 122, 102, 87, 76, 70, 68, 70, 75, 86, 101, 121, 147, 179, 226, + 238, 188, 154, 128, 108, 92, 81, 75, 73, 74, 81, 91, 107, 127, 153, 186, 235, + 250, 198, 162, 136, 115, 100, 89, 82, 80, 82, 88, 99, 114, 135, 161, 196, 248, + 255, 213, 173, 146, 125, 109, 98, 92, 89, 91, 98, 109, 124, 145, 172, 211, 255, + 255, 232, 188, 159, 138, 121, 110, 103, 101, 103, 109, 121, 137, 158, 187, 230, 255, + 255, 254, 208, 175, 153, 136, 124, 117, 115, 117, 124, 135, 152, 174, 206, 253, 255, + 255, 255, 233, 195, 170, 153, 141, 134, 131, 133, 140, 152, 169, 194, 231, 255, 255, + ] + g: [ + 255, 252, 226, 189, 164, 147, 135, 128, 126, 128, 134, 146, 163, 187, 224, 252, 255, + 255, 242, 202, 170, 147, 131, 119, 113, 110, 112, 119, 130, 146, 168, 200, 241, 255, + 255, 227, 183, 155, 133, 117, 106, 99, 97, 99, 105, 116, 132, 154, 182, 224, 255, + 249, 209, 170, 143, 122, 106, 95, 88, 86, 88, 94, 105, 121, 142, 169, 207, 247, + 242, 196, 160, 133, 112, 97, 86, 80, 77, 79, 85, 96, 111, 132, 158, 194, 241, + 237, 186, 152, 126, 106, 90, 79, 73, 71, 73, 79, 89, 104, 125, 151, 185, 234, + 229, 180, 147, 121, 101, 85, 75, 69, 67, 69, 74, 84, 100, 120, 146, 178, 226, + 224, 176, 144, 118, 98, 83, 72, 66, 65, 66, 72, 82, 97, 117, 143, 175, 222, + 223, 176, 143, 118, 97, 82, 71, 66, 64, 66, 71, 81, 96, 116, 142, 174, 220, + 225, 177, 145, 119, 98, 83, 72, 67, 65, 67, 72, 82, 97, 118, 144, 176, 223, + 231, 181, 148, 122, 102, 86, 75, 69, 68, 69, 75, 85, 101, 121, 147, 180, 228, + 239, 189, 154, 128, 107, 92, 80, 74, 72, 74, 80, 91, 106, 127, 153, 187, 236, + 244, 199, 163, 136, 115, 99, 88, 81, 79, 81, 87, 98, 114, 135, 162, 198, 243, + 251, 214, 174, 146, 125, 109, 97, 91, 88, 90, 97, 108, 124, 145, 173, 212, 250, + 255, 233, 188, 159, 137, 121, 109, 102, 100, 102, 109, 120, 136, 158, 187, 231, 255, + 255, 245, 208, 175, 152, 135, 124, 117, 114, 116, 123, 135, 152, 174, 207, 244, 255, + 255, 255, 234, 196, 170, 153, 140, 133, 131, 133, 140, 152, 169, 194, 232, 255, 255, + ] + b: [ + 255, 255, 225, 189, 164, 147, 135, 128, 126, 128, 135, 147, 164, 188, 224, 255, 255, + 255, 247, 202, 170, 148, 132, 120, 113, 111, 113, 120, 131, 147, 169, 201, 246, 255, + 255, 226, 183, 155, 134, 118, 107, 100, 98, 100, 106, 117, 133, 154, 182, 225, 255, + 255, 209, 170, 143, 123, 107, 96, 89, 87, 89, 95, 106, 122, 142, 169, 207, 255, + 247, 195, 160, 134, 113, 98, 87, 80, 78, 80, 86, 97, 112, 133, 159, 194, 245, + 236, 186, 152, 127, 106, 91, 80, 74, 71, 73, 79, 90, 105, 125, 151, 184, 234, + 228, 179, 147, 121, 101, 86, 75, 69, 67, 69, 75, 85, 100, 120, 146, 178, 226, + 223, 176, 144, 119, 99, 83, 73, 67, 65, 66, 72, 82, 98, 118, 143, 175, 221, + 222, 175, 143, 118, 98, 82, 72, 66, 64, 66, 71, 82, 97, 117, 142, 174, 220, + 224, 177, 144, 119, 99, 84, 73, 67, 65, 67, 72, 83, 98, 118, 143, 176, 222, + 230, 181, 148, 123, 102, 87, 76, 70, 68, 69, 75, 86, 101, 121, 147, 180, 228, + 239, 188, 154, 128, 108, 92, 81, 74, 72, 74, 80, 91, 107, 127, 153, 187, 237, + 251, 198, 162, 136, 115, 99, 88, 81, 79, 81, 88, 99, 114, 135, 161, 197, 249, + 255, 213, 173, 146, 125, 109, 98, 91, 88, 91, 97, 108, 124, 145, 172, 211, 255, + 255, 231, 188, 159, 137, 121, 109, 102, 100, 102, 109, 120, 136, 158, 187, 230, 255, + 255, 254, 207, 174, 152, 135, 123, 116, 114, 116, 123, 135, 151, 174, 206, 253, 255, + 255, 255, 232, 194, 169, 152, 140, 133, 130, 132, 139, 151, 169, 193, 231, 255, 255, + ] + - ct: 6366 + r: [ + 255, 255, 226, 189, 165, 148, 136, 129, 126, 128, 135, 147, 163, 187, 223, 255, 255, + 255, 247, 202, 170, 148, 132, 120, 114, 111, 113, 120, 131, 147, 169, 200, 245, 255, + 255, 226, 184, 155, 134, 118, 107, 100, 98, 100, 106, 117, 133, 154, 182, 223, 255, + 255, 209, 170, 144, 123, 107, 96, 90, 87, 89, 95, 106, 122, 142, 168, 206, 255, + 246, 195, 160, 134, 113, 98, 87, 81, 78, 80, 86, 97, 112, 133, 158, 193, 243, + 235, 185, 152, 126, 106, 91, 80, 74, 72, 74, 80, 90, 105, 125, 150, 183, 231, + 227, 179, 146, 121, 101, 86, 75, 69, 67, 69, 75, 85, 100, 120, 145, 177, 223, + 222, 175, 143, 118, 98, 83, 72, 67, 65, 66, 72, 82, 97, 117, 141, 173, 218, + 220, 174, 142, 117, 97, 82, 72, 66, 64, 66, 71, 81, 96, 116, 140, 172, 216, + 222, 175, 143, 118, 98, 83, 73, 67, 65, 67, 72, 82, 97, 117, 141, 173, 218, + 227, 179, 147, 122, 102, 86, 75, 70, 68, 69, 75, 85, 100, 120, 145, 176, 223, + 235, 186, 152, 127, 107, 91, 80, 74, 72, 74, 80, 90, 105, 125, 150, 183, 231, + 246, 196, 160, 134, 114, 98, 87, 81, 79, 81, 87, 97, 112, 133, 158, 192, 242, + 255, 209, 171, 144, 123, 108, 97, 90, 88, 90, 96, 106, 122, 142, 168, 206, 253, + 255, 227, 184, 156, 135, 119, 108, 101, 99, 101, 107, 118, 133, 154, 182, 223, 255, + 255, 248, 203, 171, 149, 132, 121, 114, 112, 114, 120, 131, 147, 169, 200, 244, 255, + 255, 255, 226, 189, 165, 148, 136, 129, 127, 129, 136, 147, 163, 187, 223, 255, 255, + ] + g: [ + 255, 252, 223, 187, 163, 146, 134, 127, 125, 127, 134, 145, 161, 185, 221, 251, 255, + 255, 242, 200, 168, 146, 130, 119, 112, 110, 112, 118, 129, 145, 167, 197, 240, 255, + 254, 224, 181, 153, 132, 117, 106, 99, 97, 99, 105, 116, 131, 152, 179, 221, 253, + 248, 206, 168, 142, 121, 105, 95, 88, 86, 88, 94, 105, 120, 140, 166, 204, 246, + 241, 193, 158, 132, 112, 97, 86, 80, 78, 79, 85, 96, 111, 131, 156, 190, 239, + 233, 183, 150, 125, 105, 90, 79, 73, 71, 73, 79, 89, 104, 123, 148, 181, 229, + 225, 177, 145, 120, 100, 85, 75, 69, 67, 69, 74, 84, 99, 118, 143, 175, 221, + 220, 173, 142, 117, 97, 82, 72, 67, 65, 66, 71, 81, 96, 115, 140, 171, 216, + 218, 172, 141, 116, 96, 81, 71, 66, 64, 66, 71, 80, 95, 114, 139, 170, 214, + 220, 173, 142, 117, 97, 82, 72, 67, 65, 66, 71, 81, 96, 115, 140, 171, 216, + 225, 177, 145, 120, 100, 85, 75, 69, 67, 69, 74, 84, 99, 118, 143, 175, 221, + 233, 183, 150, 125, 105, 90, 79, 73, 71, 73, 79, 89, 104, 124, 149, 181, 229, + 242, 193, 158, 132, 112, 97, 86, 80, 78, 79, 85, 96, 111, 131, 156, 190, 239, + 248, 207, 168, 142, 121, 106, 95, 89, 86, 88, 94, 105, 120, 140, 166, 204, 246, + 255, 224, 182, 154, 133, 117, 106, 99, 97, 99, 105, 116, 131, 152, 180, 221, 252, + 255, 242, 200, 168, 147, 130, 119, 112, 110, 112, 118, 129, 145, 167, 197, 240, 255, + 255, 252, 223, 187, 163, 146, 134, 128, 125, 127, 134, 145, 161, 185, 221, 251, 255, + ] + b: [ + 255, 255, 226, 190, 166, 149, 137, 130, 127, 129, 136, 148, 165, 189, 224, 255, 255, + 255, 248, 203, 171, 149, 133, 121, 114, 112, 114, 121, 132, 148, 170, 201, 246, 255, + 255, 227, 184, 156, 135, 119, 108, 101, 98, 101, 107, 118, 134, 155, 183, 224, 255, + 255, 209, 170, 144, 123, 108, 96, 90, 87, 89, 96, 107, 122, 143, 169, 207, 255, + 246, 195, 160, 134, 114, 98, 87, 81, 78, 80, 87, 98, 113, 133, 158, 193, 244, + 235, 185, 152, 127, 107, 91, 80, 74, 72, 74, 80, 90, 105, 125, 150, 183, 232, + 226, 179, 146, 121, 102, 86, 75, 69, 67, 69, 75, 85, 100, 120, 145, 177, 223, + 221, 175, 143, 118, 99, 83, 73, 67, 65, 67, 72, 82, 97, 117, 142, 173, 218, + 220, 174, 142, 117, 97, 82, 72, 66, 64, 66, 71, 81, 96, 116, 140, 172, 216, + 221, 175, 143, 118, 98, 83, 73, 67, 65, 67, 72, 82, 97, 117, 141, 173, 218, + 226, 179, 146, 121, 101, 86, 75, 69, 67, 69, 75, 85, 100, 120, 145, 176, 223, + 234, 185, 152, 127, 107, 91, 80, 74, 72, 73, 79, 90, 105, 125, 150, 183, 231, + 246, 195, 160, 134, 114, 98, 87, 80, 78, 80, 86, 97, 112, 132, 158, 192, 243, + 255, 208, 170, 144, 123, 107, 96, 89, 87, 89, 95, 106, 121, 142, 168, 205, 253, + 255, 226, 183, 155, 134, 118, 107, 100, 98, 100, 106, 117, 133, 154, 181, 223, 255, + 255, 247, 202, 170, 148, 132, 120, 113, 111, 113, 120, 131, 147, 168, 199, 244, 255, + 255, 255, 225, 189, 164, 148, 136, 129, 126, 128, 135, 147, 163, 187, 222, 255, 255, + ] + - Ccm: + ccms: + - ct: 2514 + ccm: [ 1.76286, -0.56930, -0.19356, + -0.42494, 1.96273, -0.53779, + -0.58656, -1.98497, 3.57153 ] + offsets: [ 0, 0, 0 ] + - ct: 2848 + ccm: [ 1.95307, -0.95295, -0.00011, + -0.35512, 1.72259, -0.36747, + -0.26523, -1.47818, 2.74341 ] + offsets: [ 0, 0, 0 ] + - ct: 2870 + ccm: [ 1.82720, -0.71106, -0.11614, + -0.34488, 1.87791, -0.53302, + -0.29486, -1.65008, 2.94494 ] + offsets: [ 0, 0, 0 ] + - ct: 3786 + ccm: [ 2.12060, -1.13313, 0.01253, + -0.32944, 1.79281, -0.46338, + -0.16631, -1.03849, 2.20480 ] + offsets: [ 0, 0, 0 ] + - ct: 5438 + ccm: [ 1.97751, -0.87339, -0.10413, + -0.29886, 2.02704, -0.72818, + -0.13071, -1.00785, 2.13856 ] + offsets: [ 0, 0, 0 ] + - ct: 6366 + ccm: [ 2.26591, -1.24264, -0.02327, + -0.24052, 1.91412, -0.67360, + -0.10050, -0.79251, 1.89301 ] + offsets: [ 0, 0, 0 ] + - Adjust: + - Agc: +... diff --git a/src/ipa/softisp/data/ov5693.yaml b/src/ipa/softisp/data/ov5693.yaml new file mode 100644 index 0000000..ddb19a2 --- /dev/null +++ b/src/ipa/softisp/data/ov5693.yaml @@ -0,0 +1,376 @@ +# SPDX-License-Identifier: CC0-1.0 +# Calibrated from the AIQB blob shipped with the Windows camera driver of +# the Surface Pro 8 front camera. The colour gains are the inverse of the +# white point of each light source, and the lens shading and colour matrix +# tables come from the same blob, so all three agree with each other. +%YAML 1.1 +--- +version: 1 +algorithms: + - BlackLevel: + - Awb: + algorithm: bayes + # Colour gains and matrices are the calibrated values of the + # vendor aiqb of the ov5693; each gain is the inverse of the + # white point of its light source, so both agree. + colourGains: + - ct: 2592 + gains: [ 0.86948, 2.57738 ] + - ct: 2773 + gains: [ 1.03736, 2.48395 ] + - ct: 3716 + gains: [ 1.33226, 2.02451 ] + - ct: 3763 + gains: [ 1.37906, 2.00644 ] + - ct: 4877 + gains: [ 1.44654, 1.60839 ] + - ct: 5894 + gains: [ 1.64164, 1.45317 ] + - ct: 6905 + gains: [ 1.80292, 1.34239 ] + # Flat priors: there are no illuminant statistics for these + # modules, so every calibrated source is equally likely. + priors: + - lux: 0 + ct: [ 2592, 2773, 3716, 3763, 4877, 5894, 6905 ] + probability: [ 0.142857, 0.142857, 0.142857, 0.142857, 0.142857, 0.142857, 0.142857 ] + - lux: 100 + ct: [ 2592, 2773, 3716, 3763, 4877, 5894, 6905 ] + probability: [ 0.142857, 0.142857, 0.142857, 0.142857, 0.142857, 0.142857, 0.142857 ] + AwbMode: + Auto: + lo: 2392 + hi: 7805 + - Lsc: + type: table + sets: + - ct: 2592 + r: [ + 224, 200, 180, 161, 146, 134, 126, 121, 120, 121, 126, 134, 146, 163, 183, 202, 224, + 208, 186, 164, 145, 130, 119, 111, 107, 106, 107, 112, 119, 131, 146, 166, 189, 211, + 197, 174, 150, 132, 118, 107, 100, 96, 94, 96, 100, 107, 118, 133, 153, 177, 202, + 188, 162, 139, 121, 108, 98, 90, 86, 85, 86, 90, 98, 109, 123, 142, 166, 194, + 180, 153, 130, 113, 100, 90, 83, 78, 77, 78, 83, 90, 101, 115, 133, 157, 186, + 173, 146, 124, 107, 94, 84, 77, 72, 71, 72, 77, 84, 95, 108, 126, 150, 179, + 168, 141, 119, 103, 90, 80, 72, 68, 67, 68, 72, 80, 90, 104, 122, 145, 174, + 165, 138, 116, 100, 87, 77, 70, 66, 65, 66, 70, 77, 88, 101, 119, 142, 171, + 164, 137, 115, 99, 86, 76, 69, 65, 64, 65, 69, 76, 87, 100, 118, 141, 170, + 165, 137, 116, 100, 87, 77, 70, 66, 65, 66, 70, 77, 87, 101, 119, 142, 171, + 167, 140, 119, 102, 89, 79, 72, 68, 67, 68, 72, 79, 90, 104, 121, 145, 174, + 172, 145, 123, 106, 94, 83, 76, 72, 71, 72, 76, 84, 94, 108, 126, 149, 179, + 178, 152, 129, 112, 99, 89, 82, 78, 76, 78, 82, 90, 100, 114, 132, 156, 185, + 186, 161, 138, 120, 107, 97, 90, 85, 84, 85, 90, 97, 108, 122, 141, 166, 193, + 195, 171, 148, 130, 116, 106, 99, 94, 93, 94, 99, 106, 117, 132, 152, 177, 202, + 205, 184, 162, 143, 128, 117, 110, 106, 104, 106, 110, 118, 129, 145, 166, 189, 212, + 220, 197, 177, 159, 143, 131, 124, 119, 118, 119, 124, 133, 145, 161, 182, 202, 226, + ] + g: [ + 237, 223, 199, 176, 157, 142, 133, 127, 125, 127, 132, 142, 156, 175, 198, 222, 235, + 229, 208, 182, 158, 140, 126, 117, 112, 110, 111, 117, 125, 139, 157, 181, 208, 228, + 222, 194, 167, 144, 126, 113, 104, 99, 97, 99, 104, 113, 125, 142, 165, 194, 222, + 212, 182, 154, 132, 115, 103, 94, 89, 87, 88, 93, 102, 114, 131, 153, 181, 213, + 203, 171, 144, 123, 107, 94, 85, 80, 78, 80, 85, 93, 105, 121, 143, 170, 203, + 195, 163, 136, 116, 100, 87, 79, 73, 72, 73, 78, 86, 98, 114, 135, 162, 195, + 190, 157, 131, 111, 95, 82, 74, 69, 67, 69, 73, 81, 94, 109, 130, 156, 190, + 186, 154, 128, 108, 92, 80, 71, 66, 65, 66, 70, 79, 91, 106, 127, 153, 186, + 185, 152, 127, 107, 91, 79, 70, 66, 64, 65, 70, 78, 90, 105, 125, 152, 185, + 186, 154, 128, 108, 92, 80, 71, 66, 65, 66, 70, 78, 91, 106, 126, 153, 186, + 189, 157, 131, 111, 95, 82, 74, 69, 67, 68, 73, 81, 93, 109, 129, 156, 189, + 195, 163, 136, 116, 100, 87, 78, 73, 71, 73, 78, 86, 98, 114, 134, 161, 195, + 203, 171, 144, 123, 107, 94, 85, 80, 78, 79, 84, 93, 105, 121, 142, 169, 202, + 212, 182, 154, 132, 115, 102, 94, 88, 86, 88, 93, 101, 113, 130, 152, 180, 211, + 222, 194, 166, 144, 126, 113, 104, 99, 97, 98, 103, 112, 124, 142, 164, 193, 221, + 229, 209, 182, 158, 140, 126, 117, 111, 109, 111, 116, 125, 138, 156, 180, 207, 226, + 236, 223, 200, 176, 157, 142, 132, 126, 124, 126, 131, 141, 155, 174, 198, 221, 234, + ] + b: [ + 226, 201, 180, 161, 144, 132, 124, 119, 118, 119, 124, 133, 146, 164, 185, 206, 229, + 211, 188, 165, 145, 129, 118, 110, 105, 104, 106, 110, 119, 131, 148, 169, 193, 216, + 201, 176, 152, 132, 117, 106, 99, 94, 93, 95, 99, 107, 119, 135, 156, 181, 208, + 193, 165, 141, 122, 108, 97, 90, 85, 84, 85, 90, 98, 110, 125, 145, 171, 200, + 185, 156, 133, 115, 101, 90, 82, 78, 76, 78, 83, 91, 102, 117, 136, 162, 192, + 178, 150, 126, 109, 95, 84, 76, 72, 71, 72, 77, 85, 96, 111, 130, 154, 185, + 173, 145, 122, 105, 91, 80, 72, 68, 67, 68, 73, 80, 92, 106, 125, 149, 180, + 170, 142, 119, 102, 88, 78, 70, 66, 65, 66, 70, 78, 89, 104, 122, 146, 177, + 169, 141, 118, 101, 87, 77, 69, 65, 64, 65, 69, 77, 88, 103, 121, 145, 176, + 170, 141, 119, 102, 88, 77, 70, 66, 65, 66, 70, 78, 89, 103, 121, 145, 176, + 172, 144, 121, 104, 90, 80, 72, 68, 67, 68, 72, 80, 91, 105, 124, 148, 179, + 177, 148, 125, 108, 94, 84, 76, 72, 70, 72, 76, 84, 95, 109, 128, 152, 183, + 183, 155, 131, 113, 100, 89, 82, 77, 76, 77, 82, 89, 100, 115, 134, 159, 189, + 190, 163, 139, 121, 107, 96, 89, 84, 83, 84, 89, 96, 107, 122, 142, 167, 196, + 199, 174, 150, 130, 116, 105, 97, 93, 91, 93, 97, 105, 116, 132, 152, 177, 204, + 207, 186, 162, 142, 127, 116, 108, 103, 102, 103, 108, 116, 128, 144, 165, 189, 213, + 221, 198, 177, 158, 141, 129, 121, 116, 115, 116, 121, 130, 142, 159, 180, 201, 227, + ] + - ct: 2773 + r: [ + 218, 193, 175, 156, 141, 130, 123, 118, 117, 118, 122, 130, 142, 157, 176, 195, 216, + 201, 180, 159, 141, 126, 116, 109, 105, 103, 105, 109, 116, 126, 141, 160, 182, 203, + 191, 168, 146, 128, 115, 105, 98, 94, 92, 94, 98, 105, 115, 129, 147, 170, 194, + 182, 157, 135, 118, 105, 96, 89, 85, 83, 85, 89, 96, 106, 119, 137, 160, 186, + 174, 148, 126, 110, 98, 88, 81, 77, 76, 77, 81, 88, 98, 111, 128, 151, 178, + 167, 141, 120, 104, 92, 83, 76, 72, 70, 72, 76, 83, 92, 105, 122, 144, 172, + 162, 136, 116, 100, 88, 79, 72, 68, 67, 68, 72, 79, 88, 101, 118, 140, 167, + 159, 133, 113, 98, 86, 76, 70, 66, 65, 66, 69, 76, 86, 99, 115, 137, 164, + 158, 132, 112, 97, 85, 75, 69, 65, 64, 65, 69, 75, 85, 98, 114, 136, 164, + 159, 133, 113, 98, 86, 76, 69, 66, 65, 66, 69, 76, 86, 99, 115, 137, 165, + 162, 136, 115, 100, 88, 78, 72, 68, 67, 68, 71, 78, 88, 101, 117, 139, 167, + 166, 140, 119, 104, 92, 82, 76, 72, 70, 71, 75, 82, 92, 105, 122, 144, 172, + 173, 147, 126, 110, 97, 88, 81, 77, 76, 77, 81, 88, 98, 110, 128, 151, 178, + 180, 156, 134, 117, 104, 95, 88, 84, 83, 84, 88, 95, 105, 118, 136, 159, 186, + 189, 166, 144, 127, 113, 103, 97, 93, 91, 93, 97, 104, 114, 128, 147, 170, 194, + 199, 178, 157, 139, 125, 114, 107, 103, 102, 103, 107, 114, 125, 140, 160, 182, 204, + 213, 191, 172, 154, 139, 128, 120, 116, 115, 116, 120, 129, 140, 156, 175, 195, 218, + ] + g: [ + 219, 193, 172, 153, 137, 125, 117, 113, 111, 113, 117, 124, 136, 151, 170, 191, 215, + 203, 180, 158, 138, 123, 113, 105, 101, 100, 101, 105, 112, 122, 137, 156, 179, 200, + 192, 168, 145, 127, 113, 103, 96, 92, 90, 91, 95, 102, 111, 125, 143, 167, 191, + 184, 158, 135, 117, 104, 95, 88, 83, 82, 83, 87, 93, 103, 116, 133, 156, 183, + 176, 149, 127, 110, 98, 88, 81, 77, 75, 76, 80, 87, 96, 108, 125, 147, 175, + 169, 142, 121, 105, 92, 83, 76, 71, 70, 71, 75, 81, 91, 103, 119, 141, 168, + 164, 137, 117, 101, 89, 79, 72, 68, 66, 67, 71, 77, 87, 99, 115, 136, 163, + 161, 135, 114, 99, 87, 77, 70, 66, 65, 65, 69, 75, 85, 97, 112, 133, 160, + 160, 134, 114, 98, 86, 76, 69, 65, 64, 65, 68, 74, 84, 96, 111, 132, 159, + 161, 135, 114, 99, 87, 77, 70, 66, 65, 65, 69, 75, 85, 97, 112, 133, 160, + 164, 138, 117, 101, 89, 79, 72, 68, 66, 67, 71, 77, 87, 99, 114, 136, 163, + 169, 142, 121, 105, 92, 83, 75, 71, 70, 71, 75, 81, 90, 102, 118, 140, 167, + 176, 149, 127, 110, 98, 88, 81, 76, 75, 76, 80, 86, 95, 107, 124, 146, 174, + 183, 158, 135, 117, 104, 94, 87, 83, 82, 83, 86, 93, 102, 115, 132, 155, 181, + 192, 168, 145, 127, 113, 102, 95, 91, 90, 91, 94, 101, 110, 124, 142, 166, 190, + 202, 180, 158, 138, 123, 112, 105, 101, 99, 100, 104, 111, 121, 136, 155, 178, 200, + 217, 193, 172, 153, 137, 125, 117, 112, 111, 112, 116, 123, 135, 150, 169, 190, 215, + ] + b: [ + 221, 195, 175, 156, 140, 128, 120, 116, 114, 116, 121, 129, 142, 158, 178, 199, 221, + 205, 183, 160, 141, 126, 115, 107, 103, 101, 103, 108, 116, 127, 143, 163, 187, 209, + 196, 171, 148, 129, 114, 104, 97, 93, 91, 93, 97, 105, 116, 131, 151, 175, 200, + 188, 161, 137, 119, 106, 95, 88, 84, 83, 84, 89, 96, 107, 121, 140, 165, 193, + 180, 152, 129, 112, 99, 89, 81, 77, 75, 77, 81, 89, 100, 114, 132, 156, 185, + 174, 146, 123, 106, 93, 83, 76, 71, 70, 72, 76, 83, 94, 108, 126, 150, 179, + 169, 141, 119, 102, 89, 79, 72, 68, 67, 68, 72, 79, 90, 104, 121, 145, 174, + 166, 138, 117, 100, 87, 77, 70, 66, 65, 66, 70, 77, 88, 101, 119, 142, 171, + 165, 137, 116, 99, 86, 76, 69, 65, 64, 65, 69, 76, 87, 100, 118, 140, 170, + 166, 138, 116, 100, 87, 77, 70, 66, 65, 66, 70, 77, 87, 101, 118, 141, 171, + 168, 141, 119, 102, 89, 79, 72, 68, 66, 68, 72, 79, 89, 103, 120, 143, 173, + 173, 145, 122, 106, 93, 83, 75, 71, 70, 71, 75, 83, 93, 106, 124, 148, 177, + 178, 151, 128, 111, 98, 88, 81, 76, 75, 76, 81, 88, 98, 111, 130, 154, 183, + 186, 159, 136, 118, 105, 94, 87, 83, 82, 83, 87, 94, 105, 119, 137, 162, 189, + 193, 169, 146, 127, 113, 103, 95, 91, 90, 91, 95, 102, 113, 128, 147, 172, 197, + 202, 181, 158, 139, 124, 113, 105, 101, 99, 101, 105, 112, 124, 139, 159, 183, 206, + 216, 192, 172, 153, 137, 125, 117, 113, 111, 113, 117, 126, 138, 154, 174, 195, 219, + ] + - ct: 3716 + r: [ + 217, 193, 173, 155, 140, 129, 122, 117, 116, 117, 122, 129, 141, 156, 175, 194, 215, + 201, 180, 158, 140, 126, 115, 108, 104, 103, 104, 108, 115, 126, 141, 160, 182, 202, + 190, 167, 145, 127, 114, 104, 97, 93, 92, 93, 97, 104, 114, 128, 147, 170, 194, + 182, 157, 135, 118, 105, 95, 89, 84, 83, 84, 89, 95, 105, 119, 136, 160, 186, + 174, 148, 126, 110, 98, 88, 81, 77, 76, 77, 81, 88, 98, 111, 128, 151, 178, + 167, 141, 120, 104, 92, 83, 76, 72, 70, 71, 76, 83, 93, 105, 122, 144, 172, + 162, 136, 116, 100, 88, 78, 72, 68, 67, 68, 72, 78, 88, 101, 118, 140, 167, + 159, 133, 113, 98, 86, 76, 69, 66, 65, 66, 69, 76, 86, 99, 115, 137, 165, + 158, 132, 112, 97, 85, 75, 69, 65, 64, 65, 69, 75, 85, 98, 114, 136, 164, + 159, 133, 113, 98, 86, 76, 69, 66, 65, 66, 69, 76, 86, 99, 115, 137, 165, + 162, 136, 115, 100, 88, 78, 72, 68, 67, 68, 71, 78, 88, 101, 118, 140, 167, + 166, 140, 119, 104, 92, 82, 75, 71, 70, 71, 75, 82, 92, 105, 122, 144, 172, + 173, 147, 126, 109, 97, 88, 81, 77, 75, 77, 81, 88, 98, 110, 128, 151, 178, + 180, 155, 133, 117, 104, 95, 88, 84, 82, 84, 88, 95, 105, 118, 136, 159, 186, + 189, 166, 144, 126, 113, 103, 96, 92, 91, 92, 97, 103, 114, 128, 146, 170, 194, + 198, 178, 156, 138, 124, 114, 107, 103, 101, 103, 107, 114, 125, 140, 159, 182, 203, + 212, 190, 171, 153, 138, 127, 120, 115, 114, 115, 120, 128, 139, 155, 174, 194, 217, + ] + g: [ + 213, 188, 168, 149, 134, 123, 115, 111, 110, 111, 115, 122, 133, 148, 166, 187, 209, + 197, 175, 154, 135, 121, 111, 104, 100, 98, 100, 103, 110, 120, 134, 152, 174, 196, + 187, 164, 142, 124, 111, 101, 94, 91, 89, 90, 94, 100, 109, 122, 140, 163, 187, + 179, 154, 132, 115, 103, 93, 87, 83, 81, 82, 86, 92, 101, 114, 130, 153, 178, + 171, 145, 124, 108, 96, 87, 80, 76, 75, 76, 80, 86, 95, 107, 123, 144, 171, + 165, 139, 118, 103, 91, 82, 75, 71, 70, 71, 74, 81, 90, 102, 117, 138, 164, + 160, 134, 114, 99, 88, 78, 71, 68, 66, 67, 71, 77, 86, 98, 113, 133, 160, + 157, 132, 112, 97, 86, 76, 69, 66, 64, 65, 69, 75, 84, 96, 111, 131, 157, + 156, 131, 111, 97, 85, 75, 69, 65, 64, 65, 68, 74, 83, 95, 110, 130, 156, + 157, 132, 112, 97, 86, 76, 69, 66, 65, 65, 69, 75, 84, 96, 110, 131, 157, + 160, 134, 114, 100, 88, 78, 71, 68, 66, 67, 71, 77, 86, 98, 113, 133, 159, + 164, 139, 118, 103, 91, 82, 75, 71, 70, 71, 74, 81, 90, 101, 117, 137, 164, + 171, 145, 124, 108, 96, 87, 80, 76, 75, 76, 79, 86, 95, 106, 122, 144, 170, + 179, 154, 132, 115, 103, 93, 87, 83, 81, 82, 86, 92, 101, 113, 130, 152, 177, + 187, 164, 142, 124, 111, 101, 94, 91, 89, 90, 94, 100, 109, 122, 140, 162, 186, + 197, 176, 154, 135, 121, 111, 104, 100, 98, 99, 103, 109, 119, 133, 152, 174, 196, + 212, 188, 168, 149, 134, 123, 115, 111, 109, 110, 114, 121, 132, 147, 166, 186, 210, + ] + b: [ + 219, 194, 174, 155, 140, 128, 120, 116, 114, 116, 121, 129, 141, 158, 178, 198, 220, + 204, 182, 159, 140, 125, 114, 107, 103, 102, 103, 108, 115, 127, 142, 163, 186, 207, + 194, 170, 147, 128, 114, 104, 97, 93, 91, 93, 97, 105, 116, 130, 150, 174, 199, + 186, 160, 136, 119, 105, 95, 88, 84, 83, 84, 89, 96, 107, 121, 139, 164, 191, + 178, 151, 128, 111, 98, 88, 81, 77, 75, 77, 81, 89, 99, 113, 131, 155, 184, + 172, 144, 122, 106, 93, 83, 76, 71, 70, 72, 76, 83, 94, 107, 125, 148, 178, + 167, 140, 118, 102, 89, 79, 72, 68, 67, 68, 72, 79, 90, 103, 121, 143, 173, + 164, 137, 116, 100, 87, 77, 70, 66, 65, 66, 70, 77, 87, 101, 118, 141, 169, + 163, 136, 115, 99, 86, 76, 69, 65, 64, 65, 69, 76, 86, 100, 117, 139, 168, + 164, 136, 115, 99, 87, 76, 69, 66, 65, 66, 70, 77, 87, 100, 117, 140, 169, + 166, 139, 118, 102, 89, 79, 72, 68, 66, 68, 72, 79, 89, 102, 119, 142, 171, + 171, 144, 122, 105, 92, 82, 75, 71, 70, 71, 75, 83, 93, 106, 123, 146, 175, + 177, 150, 127, 110, 98, 88, 81, 76, 75, 76, 81, 88, 98, 111, 129, 152, 181, + 184, 158, 135, 117, 104, 94, 87, 83, 82, 83, 87, 94, 105, 118, 137, 161, 188, + 192, 168, 145, 127, 113, 102, 95, 91, 90, 91, 95, 102, 113, 127, 146, 171, 196, + 201, 179, 157, 138, 123, 113, 105, 101, 100, 101, 105, 112, 124, 139, 159, 182, 205, + 214, 192, 171, 153, 137, 125, 117, 113, 111, 113, 117, 126, 138, 153, 173, 194, 218, + ] + - ct: 4877 + r: [ + 219, 194, 175, 156, 141, 129, 122, 117, 116, 117, 122, 130, 142, 158, 177, 197, 218, + 203, 181, 159, 141, 126, 115, 108, 104, 103, 104, 108, 116, 127, 142, 162, 184, 205, + 193, 169, 146, 128, 114, 104, 97, 93, 92, 93, 98, 105, 115, 130, 149, 173, 197, + 184, 159, 136, 118, 105, 95, 89, 84, 83, 84, 89, 96, 106, 120, 138, 162, 189, + 176, 150, 127, 111, 98, 88, 81, 77, 76, 77, 81, 89, 99, 112, 130, 154, 182, + 170, 143, 121, 105, 92, 83, 76, 72, 70, 72, 76, 83, 93, 106, 124, 147, 176, + 165, 138, 117, 101, 88, 79, 72, 68, 67, 68, 72, 79, 89, 102, 119, 142, 171, + 162, 135, 114, 99, 86, 76, 70, 66, 65, 66, 70, 76, 87, 100, 117, 139, 168, + 161, 134, 113, 98, 85, 75, 69, 65, 64, 65, 69, 76, 86, 99, 116, 138, 167, + 162, 135, 114, 99, 86, 76, 69, 66, 65, 66, 69, 76, 87, 100, 117, 139, 168, + 165, 138, 117, 101, 88, 79, 72, 68, 67, 68, 72, 79, 89, 102, 119, 142, 171, + 169, 142, 121, 105, 92, 83, 76, 72, 70, 72, 76, 83, 93, 106, 123, 146, 175, + 175, 149, 127, 110, 98, 88, 81, 77, 76, 77, 81, 88, 98, 112, 130, 153, 182, + 183, 158, 135, 118, 105, 95, 88, 84, 83, 84, 88, 95, 105, 119, 138, 162, 189, + 191, 168, 145, 127, 114, 104, 97, 93, 91, 93, 97, 104, 114, 129, 148, 172, 197, + 201, 180, 158, 139, 125, 114, 107, 103, 102, 103, 107, 115, 126, 141, 161, 184, 206, + 215, 193, 173, 155, 139, 128, 120, 116, 114, 116, 120, 129, 141, 157, 176, 197, 220, + ] + g: [ + 224, 198, 178, 158, 141, 129, 121, 116, 115, 116, 120, 129, 141, 157, 177, 198, 221, + 208, 185, 162, 142, 127, 115, 108, 103, 102, 103, 107, 115, 126, 142, 162, 185, 207, + 198, 173, 149, 130, 115, 105, 97, 93, 91, 93, 97, 104, 115, 129, 149, 173, 198, + 189, 162, 138, 120, 106, 96, 88, 84, 83, 84, 88, 95, 106, 119, 138, 162, 190, + 181, 153, 130, 112, 99, 89, 81, 77, 75, 77, 81, 88, 98, 112, 130, 153, 182, + 174, 146, 124, 107, 93, 83, 76, 71, 70, 71, 75, 83, 93, 106, 123, 146, 175, + 169, 141, 119, 103, 89, 79, 72, 68, 66, 68, 71, 79, 89, 102, 119, 141, 170, + 166, 138, 117, 100, 87, 77, 70, 66, 65, 66, 69, 76, 86, 99, 116, 138, 167, + 165, 137, 116, 100, 87, 76, 69, 65, 64, 65, 69, 75, 86, 99, 115, 137, 166, + 166, 138, 117, 100, 87, 77, 70, 66, 65, 66, 69, 76, 86, 99, 116, 138, 167, + 169, 141, 119, 103, 90, 79, 72, 68, 67, 68, 72, 79, 89, 102, 119, 141, 170, + 174, 146, 124, 107, 94, 83, 76, 72, 70, 71, 75, 83, 93, 106, 123, 146, 175, + 181, 153, 130, 113, 99, 89, 81, 77, 76, 77, 81, 88, 98, 111, 129, 153, 181, + 189, 163, 139, 120, 106, 96, 89, 84, 83, 84, 88, 95, 105, 119, 138, 162, 189, + 198, 174, 150, 130, 116, 105, 97, 93, 92, 93, 97, 104, 114, 129, 148, 173, 198, + 208, 186, 163, 143, 127, 116, 108, 103, 102, 103, 107, 115, 126, 141, 162, 185, 208, + 223, 199, 178, 158, 142, 129, 121, 116, 114, 116, 120, 128, 140, 157, 177, 198, 223, + ] + b: [ + 220, 195, 175, 157, 141, 129, 121, 117, 115, 117, 122, 130, 143, 159, 179, 199, 220, + 204, 183, 160, 141, 126, 115, 108, 104, 102, 104, 108, 116, 128, 143, 164, 187, 208, + 195, 171, 147, 129, 115, 104, 97, 93, 92, 93, 98, 105, 116, 131, 151, 175, 200, + 186, 160, 137, 119, 106, 95, 88, 84, 83, 84, 89, 96, 107, 121, 140, 164, 192, + 178, 151, 129, 111, 98, 88, 81, 77, 76, 77, 82, 89, 100, 113, 132, 156, 184, + 172, 145, 122, 106, 93, 83, 76, 71, 70, 72, 76, 83, 94, 107, 125, 149, 178, + 167, 140, 118, 102, 89, 79, 72, 68, 67, 68, 72, 79, 90, 103, 121, 144, 173, + 164, 137, 115, 99, 87, 77, 70, 66, 65, 66, 70, 77, 87, 101, 118, 141, 170, + 163, 136, 115, 99, 86, 76, 69, 65, 64, 65, 69, 76, 86, 100, 117, 139, 168, + 164, 137, 115, 99, 87, 76, 69, 66, 65, 66, 70, 77, 87, 100, 117, 140, 169, + 167, 139, 118, 102, 89, 79, 72, 68, 67, 68, 72, 79, 89, 102, 120, 142, 172, + 171, 144, 122, 105, 93, 83, 75, 71, 70, 71, 75, 83, 93, 106, 124, 147, 176, + 177, 150, 128, 111, 98, 88, 81, 77, 75, 77, 81, 88, 98, 111, 130, 153, 182, + 185, 159, 136, 118, 105, 95, 88, 84, 82, 83, 88, 95, 105, 119, 137, 161, 189, + 193, 169, 146, 127, 113, 103, 96, 92, 90, 92, 96, 103, 114, 128, 147, 172, 196, + 202, 181, 158, 139, 125, 114, 106, 102, 101, 102, 106, 113, 125, 140, 160, 183, 206, + 216, 193, 173, 154, 139, 127, 119, 114, 113, 114, 119, 127, 139, 155, 175, 195, 219, + ] + - ct: 5894 + r: [ + 217, 192, 173, 155, 140, 128, 121, 116, 115, 116, 121, 129, 140, 156, 175, 195, 216, + 201, 180, 158, 140, 125, 115, 107, 103, 102, 103, 108, 115, 126, 141, 161, 183, 204, + 191, 168, 145, 127, 114, 104, 97, 93, 92, 93, 97, 104, 115, 129, 148, 171, 195, + 183, 157, 135, 118, 105, 95, 88, 84, 83, 84, 88, 96, 106, 119, 137, 161, 188, + 175, 148, 127, 110, 98, 88, 81, 77, 76, 77, 81, 88, 98, 112, 129, 152, 180, + 168, 142, 120, 104, 92, 83, 76, 72, 70, 72, 76, 83, 93, 106, 123, 146, 174, + 164, 137, 116, 101, 88, 79, 72, 68, 67, 68, 72, 79, 89, 102, 119, 141, 169, + 161, 134, 114, 98, 86, 76, 70, 66, 65, 66, 70, 77, 87, 99, 116, 138, 167, + 160, 133, 113, 97, 85, 75, 69, 65, 64, 65, 69, 76, 86, 99, 115, 137, 166, + 161, 134, 114, 98, 86, 76, 69, 66, 65, 66, 70, 76, 87, 99, 116, 138, 167, + 163, 137, 116, 100, 88, 79, 72, 68, 67, 68, 72, 79, 89, 102, 118, 141, 169, + 168, 141, 120, 104, 92, 82, 76, 72, 70, 72, 76, 83, 93, 106, 123, 145, 174, + 174, 148, 126, 110, 97, 88, 81, 77, 76, 77, 81, 88, 98, 111, 129, 152, 180, + 181, 156, 134, 117, 104, 95, 88, 84, 83, 84, 88, 95, 105, 119, 137, 161, 187, + 190, 167, 144, 126, 113, 103, 96, 92, 91, 92, 97, 104, 114, 128, 147, 171, 195, + 199, 178, 157, 138, 124, 114, 107, 103, 101, 102, 107, 114, 125, 140, 160, 183, 205, + 213, 191, 172, 153, 138, 127, 119, 115, 114, 115, 120, 128, 140, 156, 175, 195, 219, + ] + g: [ + 212, 186, 167, 149, 134, 123, 115, 111, 110, 111, 115, 122, 133, 148, 167, 186, 208, + 196, 174, 153, 135, 121, 110, 104, 100, 99, 100, 103, 110, 120, 134, 153, 174, 195, + 186, 163, 141, 124, 110, 101, 94, 91, 89, 90, 94, 100, 110, 123, 141, 163, 186, + 178, 153, 131, 115, 102, 93, 87, 83, 81, 82, 86, 93, 102, 114, 131, 153, 178, + 170, 145, 124, 108, 96, 87, 80, 76, 75, 76, 80, 86, 95, 107, 123, 145, 171, + 164, 138, 118, 103, 91, 82, 75, 71, 70, 71, 75, 81, 90, 102, 118, 138, 165, + 159, 134, 114, 99, 88, 78, 71, 67, 66, 67, 71, 77, 87, 99, 114, 134, 160, + 157, 131, 112, 97, 86, 76, 69, 66, 64, 65, 69, 75, 85, 96, 111, 131, 157, + 156, 130, 111, 97, 85, 75, 69, 65, 64, 65, 68, 75, 84, 96, 110, 130, 156, + 157, 131, 112, 97, 86, 76, 69, 66, 65, 66, 69, 75, 85, 96, 111, 131, 157, + 159, 134, 114, 100, 88, 78, 72, 68, 67, 67, 71, 78, 87, 98, 113, 134, 160, + 164, 139, 118, 103, 91, 82, 75, 71, 70, 71, 75, 81, 90, 102, 117, 138, 165, + 170, 145, 124, 108, 96, 87, 80, 76, 75, 76, 80, 86, 95, 107, 123, 144, 171, + 178, 153, 132, 115, 103, 93, 87, 83, 81, 83, 86, 93, 101, 114, 130, 153, 178, + 187, 164, 141, 124, 111, 101, 95, 91, 90, 90, 94, 100, 110, 123, 140, 163, 186, + 196, 175, 154, 135, 121, 111, 104, 100, 99, 100, 103, 110, 120, 134, 152, 174, 196, + 211, 187, 168, 149, 134, 123, 116, 111, 110, 111, 115, 122, 133, 148, 167, 186, 211, + ] + b: [ + 218, 194, 174, 155, 140, 128, 121, 116, 115, 117, 121, 130, 142, 158, 177, 198, 219, + 203, 181, 159, 140, 125, 115, 107, 103, 102, 104, 108, 116, 127, 142, 162, 185, 206, + 193, 169, 146, 128, 114, 104, 97, 93, 91, 93, 97, 105, 116, 130, 150, 174, 198, + 185, 159, 136, 118, 105, 95, 88, 84, 83, 84, 89, 96, 106, 120, 139, 163, 190, + 177, 150, 128, 111, 98, 88, 81, 77, 76, 77, 82, 89, 99, 113, 131, 154, 183, + 171, 144, 121, 105, 93, 83, 76, 72, 70, 72, 76, 83, 94, 107, 124, 148, 177, + 166, 139, 117, 101, 89, 79, 72, 68, 67, 68, 72, 79, 90, 103, 120, 143, 172, + 163, 136, 115, 99, 86, 77, 70, 66, 65, 66, 70, 77, 87, 100, 117, 140, 168, + 162, 135, 114, 98, 86, 76, 69, 65, 64, 65, 69, 76, 86, 99, 116, 138, 167, + 163, 136, 115, 99, 86, 76, 69, 66, 65, 66, 70, 77, 87, 100, 117, 139, 168, + 165, 138, 117, 101, 89, 79, 72, 68, 67, 68, 72, 79, 89, 102, 119, 141, 170, + 170, 143, 121, 105, 92, 82, 75, 71, 70, 71, 75, 83, 93, 106, 123, 146, 174, + 176, 149, 127, 110, 97, 88, 81, 77, 75, 77, 81, 88, 98, 111, 129, 152, 180, + 183, 157, 135, 117, 104, 94, 88, 84, 82, 83, 88, 94, 104, 118, 136, 160, 187, + 191, 168, 145, 127, 113, 103, 96, 92, 90, 92, 96, 103, 113, 127, 146, 170, 195, + 200, 179, 157, 138, 124, 113, 106, 102, 100, 101, 106, 113, 124, 139, 159, 182, 204, + 214, 191, 171, 153, 138, 126, 118, 114, 112, 114, 118, 126, 138, 154, 173, 194, 218, + ] + - Ccm: + ccms: + - ct: 2592 + ccm: [ 1.56907, -0.27563, -0.29344, + -0.38788, 1.66986, -0.28197, + -0.30418, -1.05785, 2.36202 ] + offsets: [ 0, 0, 0 ] + - ct: 2773 + ccm: [ 1.69551, -0.57240, -0.12311, + -0.42705, 1.67457, -0.24752, + -0.14302, -0.86117, 2.00419 ] + offsets: [ 0, 0, 0 ] + - ct: 3716 + ccm: [ 1.75140, -0.66018, -0.09123, + -0.33917, 1.59921, -0.26004, + -0.07997, -0.59532, 1.67528 ] + offsets: [ 0, 0, 0 ] + - ct: 3763 + ccm: [ 1.72616, -0.62884, -0.09732, + -0.32706, 1.64120, -0.31414, + -0.05583, -0.71158, 1.76741 ] + offsets: [ 0, 0, 0 ] + - ct: 4877 + ccm: [ 1.62546, -0.46556, -0.15990, + -0.25055, 1.56150, -0.31095, + -0.07363, -0.53883, 1.61245 ] + offsets: [ 0, 0, 0 ] + - ct: 5894 + ccm: [ 1.61730, -0.48635, -0.13095, + -0.23463, 1.66049, -0.42586, + -0.05858, -0.53176, 1.59034 ] + offsets: [ 0, 0, 0 ] + - ct: 6905 + ccm: [ 1.67636, -0.56205, -0.11431, + -0.21691, 1.65013, -0.43322, + -0.04657, -0.50404, 1.55061 ] + offsets: [ 0, 0, 0 ] + - Adjust: + - Agc: +...