114 lines
7.7 KiB
C
114 lines
7.7 KiB
C
|
|
#include "sys_config.h"
|
|||
|
|
#include "typesdef.h"
|
|||
|
|
#include "hal/isp_param.h"
|
|||
|
|
|
|||
|
|
const uint32 gamma2p4_tbl[] = {
|
|||
|
|
0x08715C00,0x0C62A887,0x0F537CC6,0x11C424F5,0x13D4B51C,0x15A5313D,0x1755A15A,0x18E60575,
|
|||
|
|
0x1A46658E,0x1BA6BDA4,0x1CE711BA,0x1E1761CE,0x1F37A9E1,0x2057F1F3,0x21583605,0x22587615,
|
|||
|
|
0x2358B625,0x2448F235,0x25292E44,0x26096652,0x26E99E60,0x27B9D66E,0x288A0A7B,0x295A3E88,
|
|||
|
|
0x2A1A6E95,0x2ADA9EA1,0x2B9ACEAD,0x2C5AFEB9,0x2D0B2AC5,0x2DBB56D0,0x2E6B82DB,0x2F0BAEE6,
|
|||
|
|
0x2FBBDAF0,0x305C02FB,0x30FC2B05,0x319C530F,0x323C7B19,0x32CCA323,0x336CC72C,0x33FCEB36,
|
|||
|
|
0x348D133F,0x351D3748,0x35AD5B51,0x363D7F5A,0x36CD9F63,0x374DC36C,0x37DDE774,0x385E077D,
|
|||
|
|
0x38DE2785,0x396E478D,0x39EE6B96,0x3A6E8B9E,0x3ADEABA6,0x3B5EC7AD,0x3BDEE7B5,0x3C5F07BD,
|
|||
|
|
0x3CCF23C5,0x3D4F43CC,0x3DBF5FD4,0x3E2F7FDB,0x3EAF9BE2,0x3F1FB7EA,0x3F8FD3F1,0x3FFFEFF8
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
#if 0
|
|||
|
|
const uint32 gamma2p2_tbl[] = {
|
|||
|
|
0x09A1C400,0x0D42E89A,0x0FF3A8D4,0x122444FF,0x1414C922,0x15D53D41,0x1765A95D,0x18E60976,
|
|||
|
|
0x1A36658E,0x1B86B9A3,0x1CB709B8,0x1DE755CB,0x1F079DDE,0x2017E1F0,0x21182601,0x22186611,
|
|||
|
|
0x2308A221,0x23F8DE30,0x24D91A3F,0x25B9524D,0x26898A5B,0x2769BE68,0x2829F276,0x28FA2682,
|
|||
|
|
0x29BA568F,0x2A7A869B,0x2B3AB6A7,0x2BFAE6B3,0x2CAB12BF,0x2D5B3ECA,0x2E0B6AD5,0x2EBB96E0,
|
|||
|
|
0x2F5BC2EB,0x2FFBEAF5,0x30AC12FF,0x314C3F0A,0x31DC6714,0x327C8B1D,0x331CB327,0x33ACDB31,
|
|||
|
|
0x344CFF3A,0x34DD2344,0x356D474D,0x35FD6B56,0x368D8F5F,0x370DB368,0x379DD770,0x382DF779,
|
|||
|
|
0x38AE1B82,0x392E3B8A,0x39BE5F92,0x3A3E7F9B,0x3ABE9FA3,0x3B3EBFAB,0x3BBEDFB3,0x3C3EFFBB,
|
|||
|
|
0x3CBF1FC3,0x3D2F3BCB,0x3DAF5BD2,0x3E1F7BDA,0x3E9F97E1,0x3F0FB7E9,0x3F8FD3F0,0x3FFFEFF8
|
|||
|
|
};
|
|||
|
|
#else
|
|||
|
|
// BT 709 gamma 20/9=2.222...
|
|||
|
|
const uint32 gamma2p2_tbl[] = {
|
|||
|
|
0x04809000,0x0871A848,0x0B628087,0x0DD32CB6,0x1003BCDD,0x11E43D00,0x13A4B11E,0x15451D3A,
|
|||
|
|
0x16C58154,0x1825DD6C,0x19863582,0x1AC68998,0x1BF6D9AC,0x1D2725BF,0x1E476DD2,0x1F57B5E4,
|
|||
|
|
0x2067F9F5,0x21683A06,0x22687A16,0x2358B626,0x2448F235,0x25292E44,0x26096652,0x26E99E60,
|
|||
|
|
0x27B9D26E,0x288A0A7B,0x295A3E88,0x2A2A6E95,0x2AEAA2A2,0x2BAAD2AE,0x2C6B02BA,0x2D2B32C6,
|
|||
|
|
0x2DDB5ED2,0x2E8B8EDD,0x2F4BBAE8,0x2FFBE6F4,0x309C12FF,0x314C3F09,0x31EC6714,0x329C931E,
|
|||
|
|
0x333CBB29,0x33DCE333,0x347D0B3D,0x351D3347,0x35AD5751,0x364D7F5A,0x36DDA364,0x376DCB6D,
|
|||
|
|
0x380DEF76,0x389E1380,0x392E3789,0x39BE5B92,0x3A4E7F9B,0x3ACEA3A4,0x3B5EC7AC,0x3BDEE7B5,
|
|||
|
|
0x3C6F0BBD,0x3CEF2BC6,0x3D7F4BCE,0x3DFF6FD7,0x3E7F8FDF,0x3EFFAFE7,0x3F7FCFEF,0x3FFFEFF7
|
|||
|
|
};
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
const uint32 gamma1p8_tbl[] = {
|
|||
|
|
0x06511400,0x0951FC65,0x0BB2A495,0x0DB330BB,0x0F83A8DB,0x113418F8,0x12B47D13,0x1424DD2B,
|
|||
|
|
0x15853542,0x16D58D58,0x1815DD6D,0x19462981,0x1A667594,0x1B86BDA6,0x1C9701B8,0x1DA745C9,
|
|||
|
|
0x1EA789DA,0x1FA7C9EA,0x209805FA,0x21884609,0x22787E18,0x2358BA27,0x2438F235,0x25192A43,
|
|||
|
|
0x25F96251,0x26C99A5F,0x2799CE6C,0x286A0279,0x293A3686,0x2A0A6693,0x2ACA9AA0,0x2B8ACAAC,
|
|||
|
|
0x2C4AFAB8,0x2D0B2AC4,0x2DCB5AD0,0x2E7B86DC,0x2F3BB6E7,0x2FEBE2F3,0x309C0EFE,0x314C3B09,
|
|||
|
|
0x31FC6714,0x32AC931F,0x334CBF2A,0x33FCE734,0x349D133F,0x354D3B49,0x35ED6754,0x368D8F5E,
|
|||
|
|
0x372DB768,0x37CDDF72,0x386E077C,0x390E2F86,0x399E5390,0x3A3E7B99,0x3ACEA3A3,0x3B6EC7AC,
|
|||
|
|
0x3BFEEFB6,0x3C9F13BF,0x3D2F37C9,0x3DBF5BD2,0x3E4F83DB,0x3EDFA7E4,0x3F6FCBED,0x3FFFEFF6
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
// 预设的Gamma曲线和对应的BV值
|
|||
|
|
const _Sensor_YGAMMA y_gamma_tbl[NUM_CURVES] = {
|
|||
|
|
{
|
|||
|
|
.bv = 3.4028235e+38,
|
|||
|
|
.packed_lut = {
|
|||
|
|
0x01002000, 0x02006010, 0x0300A020, 0x0400E030, 0x05012040, 0x06016050, 0x0701A060, 0x0801E070,
|
|||
|
|
0x09022080, 0x0A026090, 0x0B02A0A0, 0x0C02E0B0, 0x0D0320C0, 0x0E0360D0, 0x0F03A0E0, 0x1003E0F0,
|
|||
|
|
0x11042100, 0x12046110, 0x1304A120, 0x1404E130, 0x15052140, 0x16056150, 0x1705A160, 0x1805E170,
|
|||
|
|
0x19062180, 0x1A066190, 0x1B06A1A0, 0x1C06E1B0, 0x1D0721C0, 0x1E0761D0, 0x1F07A1E0, 0x2007E1F0,
|
|||
|
|
0x21082200, 0x22086210, 0x2308A220, 0x2408E230, 0x25092240, 0x26096250, 0x2709A260, 0x2809E270,
|
|||
|
|
0x290A2280, 0x2A0A6290, 0x2B0AA2A0, 0x2C0AE2B0, 0x2D0B22C0, 0x2E0B62D0, 0x2F0BA2E0, 0x300BE2F0,
|
|||
|
|
0x310C2300, 0x320C6310, 0x330CA320, 0x340CE330, 0x350D2340, 0x360D6350, 0x370DA360, 0x380DE370,
|
|||
|
|
0x390E2380, 0x3A0E6390, 0x3B0EA3A0, 0x3C0EE3B0, 0x3D0F23C0, 0x3E0F63D0, 0x3F0FA3E0, 0x3FFFE3F0,}},
|
|||
|
|
{
|
|||
|
|
.bv = 500,
|
|||
|
|
.packed_lut = {
|
|||
|
|
0x01002000, 0x02006010, 0x0300A020, 0x0400E030, 0x05012040, 0x06016050, 0x0701A060, 0x0801E070,
|
|||
|
|
0x09022080, 0x0A026090, 0x0B02A0A0, 0x0C02E0B0, 0x0D0320C0, 0x0E0360D0, 0x0F03A0E0, 0x1003E0F0,
|
|||
|
|
0x11042100, 0x12046110, 0x1304A120, 0x1404E130, 0x15052140, 0x16056150, 0x1705A160, 0x1805E170,
|
|||
|
|
0x19062180, 0x1A066190, 0x1B06A1A0, 0x1C06E1B0, 0x1D0721C0, 0x1E0761D0, 0x1F07A1E0, 0x2007E1F0,
|
|||
|
|
0x21082200, 0x22086210, 0x2308A220, 0x2408E230, 0x25092240, 0x26096250, 0x2709A260, 0x2809E270,
|
|||
|
|
0x290A2280, 0x2A0A6290, 0x2B0AA2A0, 0x2C0AE2B0, 0x2D0B22C0, 0x2E0B62D0, 0x2F0BA2E0, 0x300BE2F0,
|
|||
|
|
0x310C2300, 0x320C6310, 0x330CA320, 0x340CE330, 0x350D2340, 0x360D6350, 0x370DA360, 0x380DE370,
|
|||
|
|
0x390E2380, 0x3A0E6390, 0x3B0EA3A0, 0x3C0EE3B0, 0x3D0F23C0, 0x3E0F63D0, 0x3F0FA3E0, 0x3FFFE3F0,}},
|
|||
|
|
{
|
|||
|
|
.bv = 1000,
|
|||
|
|
.packed_lut = {
|
|||
|
|
0x01002000, 0x02006010, 0x0300A020, 0x0400E030, 0x05012040, 0x06016050, 0x0701A060, 0x0801E070,
|
|||
|
|
0x09022080, 0x0A026090, 0x0B02A0A0, 0x0C02E0B0, 0x0D0320C0, 0x0E0360D0, 0x0F03A0E0, 0x1003E0F0,
|
|||
|
|
0x11042100, 0x12046110, 0x1304A120, 0x1404E130, 0x15052140, 0x16056150, 0x1705A160, 0x1805E170,
|
|||
|
|
0x19062180, 0x1A066190, 0x1B06A1A0, 0x1C06E1B0, 0x1D0721C0, 0x1E0761D0, 0x1F07A1E0, 0x2007E1F0,
|
|||
|
|
0x21082200, 0x22086210, 0x2308A220, 0x2408E230, 0x25092240, 0x26096250, 0x2709A260, 0x2809E270,
|
|||
|
|
0x290A2280, 0x2A0A6290, 0x2B0AA2A0, 0x2C0AE2B0, 0x2D0B22C0, 0x2E0B62D0, 0x2F0BA2E0, 0x300BE2F0,
|
|||
|
|
0x310C2300, 0x320C6310, 0x330CA320, 0x340CE330, 0x350D2340, 0x360D6350, 0x370DA360, 0x380DE370,
|
|||
|
|
0x390E2380, 0x3A0E6390, 0x3B0EA3A0, 0x3C0EE3B0, 0x3D0F23C0, 0x3E0F63D0, 0x3F0FA3E0, 0x3FFFE3F0,}},
|
|||
|
|
{
|
|||
|
|
.bv = 1500,
|
|||
|
|
.packed_lut = {
|
|||
|
|
0x01002000, 0x02006010, 0x0300A020, 0x0400E030, 0x05012040, 0x06016050, 0x0701A060, 0x0801E070,
|
|||
|
|
0x09022080, 0x0A026090, 0x0B02A0A0, 0x0C02E0B0, 0x0D0320C0, 0x0E0360D0, 0x0F03A0E0, 0x1003E0F0,
|
|||
|
|
0x11042100, 0x12046110, 0x1304A120, 0x1404E130, 0x15052140, 0x16056150, 0x1705A160, 0x1805E170,
|
|||
|
|
0x19062180, 0x1A066190, 0x1B06A1A0, 0x1C06E1B0, 0x1D0721C0, 0x1E0761D0, 0x1F07A1E0, 0x2007E1F0,
|
|||
|
|
0x21082200, 0x22086210, 0x2308A220, 0x2408E230, 0x25092240, 0x26096250, 0x2709A260, 0x2809E270,
|
|||
|
|
0x290A2280, 0x2A0A6290, 0x2B0AA2A0, 0x2C0AE2B0, 0x2D0B22C0, 0x2E0B62D0, 0x2F0BA2E0, 0x300BE2F0,
|
|||
|
|
0x310C2300, 0x320C6310, 0x330CA320, 0x340CE330, 0x350D2340, 0x360D6350, 0x370DA360, 0x380DE370,
|
|||
|
|
0x390E2380, 0x3A0E6390, 0x3B0EA3A0, 0x3C0EE3B0, 0x3D0F23C0, 0x3E0F63D0, 0x3F0FA3E0, 0x3FFFE3F0, }},
|
|||
|
|
{// 线性曲线,BV=500
|
|||
|
|
.bv = 2000,
|
|||
|
|
.packed_lut = {
|
|||
|
|
0x01002000, 0x02006010, 0x0300A020, 0x0400E030, 0x05012040, 0x06016050, 0x0701A060, 0x0801E070,
|
|||
|
|
0x09022080, 0x0A026090, 0x0B02A0A0, 0x0C02E0B0, 0x0D0320C0, 0x0E0360D0, 0x0F03A0E0, 0x1003E0F0,
|
|||
|
|
0x11042100, 0x12046110, 0x1304A120, 0x1404E130, 0x15052140, 0x16056150, 0x1705A160, 0x1805E170,
|
|||
|
|
0x19062180, 0x1A066190, 0x1B06A1A0, 0x1C06E1B0, 0x1D0721C0, 0x1E0761D0, 0x1F07A1E0, 0x2007E1F0,
|
|||
|
|
0x21082200, 0x22086210, 0x2308A220, 0x2408E230, 0x25092240, 0x26096250, 0x2709A260, 0x2809E270,
|
|||
|
|
0x290A2280, 0x2A0A6290, 0x2B0AA2A0, 0x2C0AE2B0, 0x2D0B22C0, 0x2E0B62D0, 0x2F0BA2E0, 0x300BE2F0,
|
|||
|
|
0x310C2300, 0x320C6310, 0x330CA320, 0x340CE330, 0x350D2340, 0x360D6350, 0x370DA360, 0x380DE370,
|
|||
|
|
0x390E2380, 0x3A0E6390, 0x3B0EA3A0, 0x3C0EE3B0, 0x3D0F23C0, 0x3E0F63D0, 0x3F0FA3E0, 0x3FFFE3F0,}}
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
uint32 gamma_table_addr[3] = {(uint32)gamma1p8_tbl, (uint32)gamma2p2_tbl, (uint32)gamma2p4_tbl};
|