19d4fa1a1SMauro Carvalho Chehab /* 29d4fa1a1SMauro Carvalho Chehab * Support for Intel Camera Imaging ISP subsystem. 39d4fa1a1SMauro Carvalho Chehab * Copyright (c) 2015, Intel Corporation. 49d4fa1a1SMauro Carvalho Chehab * 59d4fa1a1SMauro Carvalho Chehab * This program is free software; you can redistribute it and/or modify it 69d4fa1a1SMauro Carvalho Chehab * under the terms and conditions of the GNU General Public License, 79d4fa1a1SMauro Carvalho Chehab * version 2, as published by the Free Software Foundation. 89d4fa1a1SMauro Carvalho Chehab * 99d4fa1a1SMauro Carvalho Chehab * This program is distributed in the hope it will be useful, but WITHOUT 109d4fa1a1SMauro Carvalho Chehab * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 119d4fa1a1SMauro Carvalho Chehab * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 129d4fa1a1SMauro Carvalho Chehab * more details. 139d4fa1a1SMauro Carvalho Chehab */ 149d4fa1a1SMauro Carvalho Chehab 159d4fa1a1SMauro Carvalho Chehab #ifndef __IA_CSS_MACC_TYPES_H 169d4fa1a1SMauro Carvalho Chehab #define __IA_CSS_MACC_TYPES_H 179d4fa1a1SMauro Carvalho Chehab 189d4fa1a1SMauro Carvalho Chehab /* @file 199d4fa1a1SMauro Carvalho Chehab * CSS-API header file for Multi-Axis Color Correction (MACC) parameters. 209d4fa1a1SMauro Carvalho Chehab */ 219d4fa1a1SMauro Carvalho Chehab 229d4fa1a1SMauro Carvalho Chehab /* Number of axes in the MACC table. */ 239d4fa1a1SMauro Carvalho Chehab #define IA_CSS_MACC_NUM_AXES 16 249d4fa1a1SMauro Carvalho Chehab /* Number of coefficients per MACC axes. */ 259d4fa1a1SMauro Carvalho Chehab #define IA_CSS_MACC_NUM_COEFS 4 269d4fa1a1SMauro Carvalho Chehab /* The number of planes in the morphing table. */ 279d4fa1a1SMauro Carvalho Chehab 289d4fa1a1SMauro Carvalho Chehab /* Multi-Axis Color Correction (MACC) table. 299d4fa1a1SMauro Carvalho Chehab * 309d4fa1a1SMauro Carvalho Chehab * ISP block: MACC1 (MACC by only matrix) 319d4fa1a1SMauro Carvalho Chehab * MACC2 (MACC by matrix and exponent(ia_css_macc_config)) 329d4fa1a1SMauro Carvalho Chehab * ISP1: MACC1 is used. 339d4fa1a1SMauro Carvalho Chehab * ISP2: MACC2 is used. 349d4fa1a1SMauro Carvalho Chehab * 359d4fa1a1SMauro Carvalho Chehab * [MACC1] 369d4fa1a1SMauro Carvalho Chehab * OutU = (data00 * InU + data01 * InV) >> 13 379d4fa1a1SMauro Carvalho Chehab * OutV = (data10 * InU + data11 * InV) >> 13 389d4fa1a1SMauro Carvalho Chehab * 399d4fa1a1SMauro Carvalho Chehab * default/ineffective: 409d4fa1a1SMauro Carvalho Chehab * OutU = (8192 * InU + 0 * InV) >> 13 419d4fa1a1SMauro Carvalho Chehab * OutV = ( 0 * InU + 8192 * InV) >> 13 429d4fa1a1SMauro Carvalho Chehab * 439d4fa1a1SMauro Carvalho Chehab * [MACC2] 449d4fa1a1SMauro Carvalho Chehab * OutU = (data00 * InU + data01 * InV) >> (13 - exp) 459d4fa1a1SMauro Carvalho Chehab * OutV = (data10 * InU + data11 * InV) >> (13 - exp) 469d4fa1a1SMauro Carvalho Chehab * 479d4fa1a1SMauro Carvalho Chehab * default/ineffective: (exp=1) 489d4fa1a1SMauro Carvalho Chehab * OutU = (4096 * InU + 0 * InV) >> (13 - 1) 499d4fa1a1SMauro Carvalho Chehab * OutV = ( 0 * InU + 4096 * InV) >> (13 - 1) 509d4fa1a1SMauro Carvalho Chehab */ 519d4fa1a1SMauro Carvalho Chehab 529d4fa1a1SMauro Carvalho Chehab struct ia_css_macc_table { 539d4fa1a1SMauro Carvalho Chehab s16 data[IA_CSS_MACC_NUM_COEFS * IA_CSS_MACC_NUM_AXES]; 549d4fa1a1SMauro Carvalho Chehab /** 16 of 2x2 matix 559d4fa1a1SMauro Carvalho Chehab MACC1: s2.13, [-65536,65535] 569d4fa1a1SMauro Carvalho Chehab default/ineffective: 579d4fa1a1SMauro Carvalho Chehab 16 of "identity 2x2 matix" {8192,0,0,8192} 589d4fa1a1SMauro Carvalho Chehab MACC2: s[macc_config.exp].[13-macc_config.exp], [-8192,8191] 599d4fa1a1SMauro Carvalho Chehab default/ineffective: (s1.12) 609d4fa1a1SMauro Carvalho Chehab 16 of "identity 2x2 matix" {4096,0,0,4096} */ 619d4fa1a1SMauro Carvalho Chehab }; 629d4fa1a1SMauro Carvalho Chehab 639d4fa1a1SMauro Carvalho Chehab #endif /* __IA_CSS_MACC_TYPES_H */ 64