SPRUJ28E November 2021 – September 2024 AM68 , AM68A , TDA4AL-Q1 , TDA4VE-Q1 , TDA4VL-Q1
The Asymmetry function is used to balance the iridix effect between the dark and bright regions of the image. The Asymmetry Function Lookup Table geometry is 33 words, each of which is 16-bits wide.
GLBCE_LUT_FI_00
GLBCE_LUT_FI_01
... repeat until...
GLBCE_LUT_FI_32
Recommended values (decimal):
0:5377:10218:14600:18585:22224:25561:28631:31466:34092:36530:38801:40921:42904
:44764:46511:48156:49706:51171:52557:53870:55116:56299:57425:58498:59520:60497
:61429:62322:63176:63995:64781:65535
The C-code for generating the Asymmetry LUT is shown below:
#include <math.h>
int AsymmetryTable[33];
void GenerateAsymmetry(int Asymmetry, int SecondPole)
{
double x = (double(Asymmetry)+1)/257 * 2 - 1;
int ai = (int)floor(0.5 + 255 * (1- 1/(1000*x*x*x) + x - ((x >= 0)*2)));
double as = fabs(double(ai) / 255);
double dp = double(SecondPole) / 255;
int ii;
for (ii = 0 ; ii < 33 ; ++ii)
{
if(ai >= 0)
{
x = double(ii) / 32;
}
else
{
x = double(32 - ii) / 32;
}
int y = (int)floor((dp+(1-dp)*pow((fabs(1-dp-x)/dp), 3)) * (x*(as+1)/(as+x) ) *
65535.0 + 0.5);
y = y < 0 ? 0 : y > 65535 ? 65535 : y;
if (ai < 0)
{
y = 65535 - y;
}
AsymmetryTable[ii] = y;
}
}