12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955 |
- #ifndef _PQ_HW_H
- #define _PQ_HW_H
- /*******************************************************************************
- * Header include
- ******************************************************************************/
- #include <linux/spinlock_types.h>
- #include <drv_pq_internal.h>
- #include <drv_pq.h>
- #include "pq_tab.h"
- #include <project.h>
- #define PQ_GetRegisterEndBit(ulRegisterName) ((ulRegisterName >> 22) & 0x00000003F)
- #define GET_VALUE_BITS(ulRegisterName, ulValue) ((UINT32)(ulValue << (32 - PQ_GetRegisterEndBit(ulRegisterName)))) >> ((32 - PQ_GetRegisterEndBit(ulRegisterName)))
- #define PQ_GetStartAndEndBits(ulRegisterName) (ulRegisterName & 0x0FFF0000)
- #define PQ_GetRegisterStartBit(ulRegisterName) ((ulRegisterName >> 16) & 0x00000003F)
- #define ALL_BITS 0x08000000
- #define WIDTH_BIT_8 0x02000000
- #define REGISTER_ADDRESS_MASK 0x0000FFFF
- #define REGISTER_TYPE_MASK 0xF0000000
- #define REGISTER_ADDRESS_LVDS_MAPPING 0x0800C1B4 //0x0800C1B4[13:12] : lvds bit-per-pixel type
- #define COLOR_MATRIX_GAIN_BIT_SYSTEM 10
- //#define REFCLK 24000
- #define NewTNRVer 0xabcdabcd
- /*330
- #if 0
- #define COLOR_MATRIX_GAIN_OSD_BIT_SYSTEM 7
- #else
- #define COLOR_MATRIX_GAIN_OSD_BIT_SYSTEM 6
- #endif
- */
- #define COLOR_MATRIX_GAIN_OSD_BIT_SYSTEM 10 //531
- #define BRIGHTNESS_OFFSET (2<<(COLOR_MATRIX_GAIN_OSD_BIT_SYSTEM-1))
- #define COLOR_MATRIX_GAIN_OSD_DIFFBIT (COLOR_MATRIX_GAIN_BIT_SYSTEM-COLOR_MATRIX_GAIN_OSD_BIT_SYSTEM)
- #define COLOR_MATRIX_BIAS_BIT_SYSTEM 8
- #define COLOR_MATRIX_BIAS_OSD_BIT_SYSTEM 8
- //#define COLOR_MATRIX_YPP_COMP_OFFSET (16<<(COLOR_MATRIX_BIAS_BIT_SYSTEM-8))
- #define COLOR_MATRIX_YPP_COMP_OFFSET 64*4
- #define OFF 0
- #define WEAK 1
- #define MEDIUM 2
- #define STRONG 3
- #define AUTO 4
- #define ERR_CNT 20
- #define PQ_DebugMsg_CustUserCurveInit 0x4
- #define PQ_DebugMsg_CustUserCurvePolling 0x8
- #define CSC_RGB 0
- #define CSC_601 1
- #define CSC_709 2
- #define PQ_CMDSET_GET_RGN_LUT 0
- #define PQ_CMDSET_SET_RGN_LUT 1
- #define PQ_CMDSET_GET_RGN_LUT_STR 2
- #define PQ_CMDSET_SET_RGN_LUT_STR 3
- #define PQ_CMDSET_GET_RGN_LUT_330C 4
- #define PQ_CMDSET_SET_RGN_LUT_330C 5
- #define PQ_CMDSET_GET_RGN_LUT_V3 6
- #define PQ_CMDSET_SET_RGN_LUT_V3 7
- #define PQ_CMDSET_GET_RGN_LUT_64Bit 8
- #define PQ_CMDSET_SET_RGN_LUT_64Bit 9
- #define PQ_CMDSET_GET_COLOR_MATRIX 10
- #define PQ_CMDSET_SET_COLOR_MATRIX 11
- #define PQ_CMDSET_GET_SW_DC_SCENE_DET_SLOPE 20
- #define PQ_CMDSET_SET_SW_DC_SCENE_DET_SLOPE 21
- #define PQ_CMDSET_GET_SW_DC_SCENE_DET_CHROMA 22
- #define PQ_CMDSET_SET_SW_DC_SCENE_DET_CHROMA 23
- #define PQ_CMDSET_GET_SW_DC_SCENE_DET_PARAM 24
- #define PQ_CMDSET_SET_SW_DC_SCENE_DET_PARAM 25
- #define PQ_CMDSET_GET_SW_DC_SCENE_DET_INFO 26
- #define PQ_CMDSET_GET_SW_DC_SCENE_DET_SOURCE 27
- #define PQ_CMDSET_SET_SW_DC_SCENE_DET_SOURCE 28
- #define PQ_CMDSET_GET_DRV_CURRENT_SOURCE 29
- #define PQ_CMDSET_SET_NR_ADJUST_STATUS 30
- #define PQ_CMDSET_GET_RGB_GAIN_ADJUST_MODULE 31 // retur 0 for DPY matrix, 1 = gamma
- #define PQ_CMDSET_GET_RGB_GAIN_PARAM 32
- #define PQ_CMDSET_GET_VIP_FLASH_INFO 60
- #define UNLOCK 0
- #define LOCK 1
- #define PQ_SAT_NO_OPERATION 0
- #define PQ_SAT_SET_VALUE 1
- #define PQ_SAT_INIT_VALUE 2
- #define PQ_SAT_WAIT_5SEC 3
- #define PQ_SAT_DETECT_SCENE 4
- #define PQ_SAT_RE_SET_VALUE 5
- #define SDNR_Gain_normal 100
- #define SDNR_Gain_Low 130
- #define SDNR_Gain_Mid 160
- #define SDNR_Gain_High 200
- #define DPY_EOF_EVENT 0x25
- #define MODE_DeinterlaceFilter 0
- #define VIP_TABLE_GROUPED_NUMBER 8 //for number of VIP table grouped setting
- #define SNR_MAP_GAIN_NUM 2
- #define REFERENCE_VIPTABLE 2
- /*******************************************************************************
- * Enum
- ******************************************************************************/
- //dynamic backlight change speed
- enum
- {
- BL_SLOW,
- BL_QUICK,
- };
- enum
- {
- WEAK_LEVEL,
- NORMAL_LEVEL,
- STRONG_LEVEL,
- };
- enum{
- USERCURVE_DETECT,
- USERCURVE_ENTERING,
- };
- enum{
- USERCURVE_OFF,
- USERCURVE_PQ,
- USERCURVE_HW,
- USERCURVE_HW_AUTO_TH,
- };
- enum {
- PQ_EVENT_NONWAITE,
- PQ_EVENT_WAITE
- };
- /*
- @ note : need sync with LUT source define in tool(ColorLUTvxDlg.h)
- */
- typedef enum
- {
- SRC_INDEX_ATV_NTSC=0,
- SRC_INDEX_ATV_PAL,
- SRC_INDEX_AV_NTSC,
- SRC_INDEX_AV_PAL,
- SRC_INDEX_SVideo_NTSC,
- SRC_INDEX_SVideo_PAL,
- SRC_INDEX_Component_SD,
- SRC_INDEX_Component_HD,
- SRC_INDEX_HDMI_SD,
- SRC_INDEX_HDMI_HD,
- SRC_INDEX_DTV_SD,
- SRC_INDEX_DTV_HD,
- SRC_INDEX_JPEG ,
- SRC_INDEX_PC,
- SRC_INDEX_DVI,
- SRC_INDEX_SCART_RGB,
- SRC_INDEX_DVD,
- SRC_INDEX_NETEORK = SRC_INDEX_DVD,
- SRC_INDEX_UNKNOWN
- } PQ_LUT_SRC;
- typedef enum
- {
- ATV_IN,
- DTV_IN,
- DTV_HD_IN,
- AV_IN,
- SV_IN,
- COMP_IN,
- COMP_HD_IN,
- SCART_IN,
- HDMI_IN,
- HDMI_HD_IN,
- PC_IN,
- DVD_IN,
- DVD_HD_IN,
- END_IN,
- END_IN_EXT
- }PQ_DLC_SRC;
- typedef enum {
- PQ_ITEM_LUMA_TNR_CORING, // 0, range : 0 - 16
- PQ_ITEM_LUMA_TNR_STRENGTH, // range : 0 - 16
- PQ_ITEM_CHROMA_TNR_CORING, // range : 0 - 16
- PQ_ITEM_CHROMA_TNR_STRENGTH, // range : 0 - 16
- PQ_ITEM_LUMA_SNR1_CORING, // range : 0 - 24
- PQ_ITEM_LUMA_SNR1_STRENGTH,// 5 // range : 0 - 16
- PQ_ITEM_LUMA_SNR2_CORING, // range : 0 - 24
- PQ_ITEM_LUMA_SNR2_STRENGTH, // range : 0 - 16
- PQ_ITEM_CHROMA_SNR_CORING, // range : 0 - 16
- PQ_ITEM_CHROMA_SNR_STRENGTH, // range : 0 - 16
- PQ_ITEM_BLOCK_NR_CORING, // 10 // range : 0 - 10
- PQ_ITEM_BLOCK_NR_STRENGTH, // range : 0 - 10
- PQ_ITEM_MOSQUITO_NR_CORING, // range : 0 - 10
- PQ_ITEM_MOSQUITO_NR_STRENGTH, // range : 0 - 10
- PQ_ITEM_TNR_ULTRA_LOW, // range : 0 - 16
- PQ_ITEM_SNR1_ULTRA_LOW, // 15 // range : 0 - 24
- PQ_ITEM_SNR2_ULTRA_LOW,// range : 0 - 24
- } PQ_ITEM;
- typedef enum
- {
- PQ_STANDARD_DEFINITION,
- PQ_HIGH_DEFINITION,
- } PQ_Definition;
- typedef enum
- {
- NR_BLOCK_ALPHA_TNR,
- NR_BLOCK_ALPHA_TNR_SNR,
- NR_BLOCK_ALPHA_TNR_C,
- NR_BLOCK_ALPHA_TNRZ,
- NR_BLOCK_ALPHA_TNRZ_C,
- NR_BLOCK_ALPHA_END, // 5
- NR_BLOCK_ALPHA_AV_SECAM_PATCH,
- }PQ_NR_BLOCKALPHA_TYPE;
- enum{
- PQ_SHARPNESS_0PERCENT,
- PQ_SHARPNESS_50PERCENT,
- PQ_SHARPNESS_100PERCENT,
- PQ_SHARPNESS_PERCENT_END
- };
- enum {
- HP_3_TAP,
- HP_5_TAP,
- };
- enum {
- BP_7_TAP,
- BP_9_TAP,
- };
- enum {
- EP_11_TAP,
- EP_13_TAP,
- };
- typedef enum
- {
- SAT_GAIN_NORMAL,
- SAT_GAIN_ATV_GREY_SCALE_PATCH,
- SAT_GAIN_ATV_PAL_I_1280_PANEL_COLORBAR_PATCH,
- SAT_GAIN_ATV_PAL_M_GREY_SCALE_NR_PATCH,
- SAT_GAIN_ATV_SECAM_GREY_SCALE_NR_PATCH,
- SAT_GAIN_COMMAND_DEFAULT,
- }SatGainMethod;
- enum{
- PATCHNOTAPPLY,
- PATCHAPPLIED,
- };
- enum{
- PEAKLTI_AV_IRE_PATCH, //black level, white level pattern
- PEAKLTI_AV_GRAYSCALE_PATCH, //graysclae, monoscope
- PEAKLTI_NON_PATCH, //reference viptable
- };
- enum{
- DPY_PEAKING_AV_IRE_PATCH, //black level, white level pattern
- DPY_PEAKING_AV_GRAYSCALE_PATCH, //graysclae, monoscope
- DPY_PEAKING_NON_PATCH, //reference viptable
- };
- enum{
- DS_SHARPNESS_AV_IRE_PATCH, //black level, white level pattern
- DS_SHARPNESS_AV_GRAYSCALE_PATCH, //graysclae, monoscope
- DS_SHARPNESS_NON_PATCH, //reference viptable
- };
- enum{
- TNR_CLAMP_DEFAULT_ATV_GRAYSCALE_PATCH,
- TNR_CLAMP_DEFAULT_AV_GRAYSCALE_PATCH,
- TNR_CLAMP_DEFAULT, //default
- };
- enum{
- POST_2D_SHARPNESS_JPEG_THUMBNAIL_PATCH,
- POST_2D_SHARPNESS_DEFAULT, //default
- };
- enum{
- POST_DLTI_JPEG_THUMBNAIL_PATCH,
- POST_DLTI_DEFAULT, //default
- };
- enum{
- DPY_SHARPNESS_JPEG_THUMBNAIL_PATCH,
- DPY_SHARPNESS_DEFAULT, //default
- };
- /*******************************************************************************
- * Structure
- ******************************************************************************/
- typedef struct _ST_PQ_CMDSET_CLR_MATRIX
- {
- CSC_SETTING curMatrix; // before contrast, brightness, ColorTemp, Hue, Sat, Ypp_en compensation
- INT32 iMatrixC[3];
- INT32 iContrast;
- INT32 iBrightness;
- INT32 iCTRGBGain[3]; // R:0, G:1, B:2
- INT32 iCTRGBBias[3]; // R:0, G:1, B:2
- INT32 iHue;
- INT32 iSaturation;
- } ST_PQ_CMDSET_CLR_MATRIX;
- typedef struct _ST_PQ_CMDSET_CLR_MATRIX_EX
- {
- CSC_SETTING curMatrix; // before contrast, brightness, ColorTemp, Hue, Sat, Ypp_en compensation
- INT32 iMatrixC[3];
- INT32 iContrast;
- INT32 iBrightness;
- INT32 iCTRGBGain[3]; // R:0, G:1, B:2
- INT32 iCTRGBBias[3]; // R:0, G:1, B:2
- INT32 iHue;
- INT32 iSaturation;
- INT32 iOSDGainBit;
- INT32 iOSDBiasBit;
- } ST_PQ_CMDSET_CLR_MATRIX_EX;
- typedef struct _SAT_INFO //saturation
- {
- UINT8 ucOperation; //0: none 1:wait 5 sec to enter detecting 2:scene detect every 1 sec
- UINT8 ucSat;
- UINT8 ucDiff;
- UINT8 ucDiff_min;
- UINT8 ucDiff_max;
- BOOL bCeneChange;
- UINT16 nTimeout;
- spinlock_t SpinLock;
- } SAT_INFO;
- typedef struct _COLOR_MATRIX_COMP_INT
- {
- INT32 iValue:12;
- }COLOR_MATRIX_COMP_INT;
- typedef struct _COLORRGB
- {
- INT32 dR;
- INT32 dG;
- INT32 dB;
- }COLORRGB;
- typedef struct _COLORYUV
- {
- INT32 dY;
- INT32 dU;
- INT32 dV;
- }COLORYUV;
- typedef struct _FL_SETTING
- {
- INT32 detect_en;
- INT32 angle_max;
- INT32 angle_min;
- INT32 rot_angle;
- INT32 sin;
- INT32 cos;
- INT32 lrange;
- INT32 hrange;
- INT32 sat;
- INT32 sat_max;
- INT32 calc_bypass;
- INT32 q_left;
- INT32 q_right;
- INT32 q1;
- } FL_SETTING;
- typedef struct _RG_SETTING
- {
- INT32 detect_en;
- INT32 angle_max;
- INT32 angle_min;
- INT32 rot_angle;
- INT32 sin;
- INT32 cos;
- INT32 lrange;
- INT32 hrange;
- INT32 mult;
- INT32 mult_max;
- INT32 calc_bypass;
- INT32 q;
- INT32 q1;
- } RG_SETTING;
- typedef struct _GAMMA_OPT
- {
- INT32 pc_no_gamma;
- } GAMMA_OPT;
- typedef struct CR_MSETTING
- {
- INT32 fl_mrange;
- INT32 reg0_mrange;
- INT32 reg1_mrange;
- INT32 reg2_mrange;
- INT32 reg3_mrange;
- INT32 reg4_mrange;
- INT32 reg5_mrange;
- }CR_MSETTING;
- typedef struct _DS_SHARP_RATIO
- {
- INT32 ratio[6];
- } DS_SHARP_RATIO;
- typedef struct _SAT_GAIN_CURVE
- {
- UINT8 mSatGainCurveSource[20];
- UINT8 sat_gb[8][16];
- } SAT_GAIN_CURVE;
- typedef struct _PQ_MENU_VALUE
- {
- INT32 iBrightness,iContrast,iSharpness,iSaturation,iHue;
- INT32 iColorTemp[3];
- INT32 iColorBias[3];
- UINT8 ucDCLevel;
- UINT8 ucCWLevel;
- INT8 cSGOffset;
- UINT8 ucNRLevel;
- UINT8 ucMPEGNRLevel;
- BOOL bNoGamma;
- UINT8 ucColorStyle;
- UINT8 ucColorProcess;
- } PQ_MENU_VALUE;
- typedef struct _SHARP_INFO
- {
- //INT32 x1,m1,x2,m2,smooth,sharp;
- INT32 m1,m2,smooth,sharp;
- union {
- INT32 ilimit; // for initial fake
- UINT8 limit[4]; //0:sd or all(before V34) 1:md 2:hd 3:enable_flag
- };
- INT32 pivotx,pivoty;
- } SHARP_INFO;
- typedef struct _STRENGTH_DEFINE
- {
- INT32 Degree[3]; //weak, medium, strong
- } STRENGTH_DEFINE;
- typedef struct _PEAKING_SETTING
- {
- INT32 filter_y_h1;
- INT32 filter_y_h2;
- INT32 filter_y_h3;
- INT32 filter_y_h4;
- } PEAKING_SETTING;
- typedef struct _PEAKING_SETTING_EXT
- {
- INT32 filter_y_h5;
- INT32 filter_y_h6;
- } PEAKING_SETTING_EXT;
- typedef struct _REG_RANGE
- {
- INT32 min;
- INT32 max;
- INT32 middle;
- } REG_RANGE;
- typedef struct _DS_SHARP_INFO
- {
- INT32 fac0,fac1,fac2,th0,th1,slope0,slope1;
- union {
- INT32 ioversht; // for initial fake
- UINT8 oversht[4]; //0:sd or all(before V34) 1:md 2:hd 3:enable_flag
- };
- union {
- INT32 iundersht; // for initial fake
- UINT8 undersht[4]; //0:sd or all(before V34) 1:md 2:hd 3:enable_flag
- };
- } DS_SHARP_INFO;
- typedef struct _DC_STRENGTH_DEFINE//dynamic contrast for v25
- {
- UINT32 Degree[3]; //weak, medium, strong
- } DC_STRENGTH_DEFINE;
- typedef struct _DARK_SHARP_INFO
- {
- UINT16 th[4];
- UINT16 fac[4];
- UINT8 slope[5];
- UINT8 reserve[2];
- UINT8 enable;
- } DARK_SHARP_INFO;
- typedef struct _REG_RANGE_EXT
- {
- INT32 midleft;
- INT32 midright;
- } REG_RANGE_EXT;
- typedef struct _USER_CURVE_INFO
- {
- const USER_BIN_SET* pStaticGamma;
- const USER_BIN_SET* pBlackLevelExtension;
- const USER_BIN_SET* pWhiteLevelExtension;
- } USER_CURVE_INFO;
- typedef struct
- {
- UINT32 TableOffset;
- UINT32 TableSize;
- UINT32 XorCRC;
- UINT32 TableFlag;
- } LUTTableInfo;
- typedef struct HeadStruct
- {
- UINT8 LUTID[3];
- UINT8 Version;
- UINT32 FileSize;
- UINT16 IndexOffset;
- UINT16 HeadLength;
- UINT8 TableCount;
- UINT8 SrcCount;
- UINT8 HueScale;
- UINT8 Empty;
- UINT8 SrcIndex[32];
- UINT8 Reserved1[16];
- UINT8 Tag[32];
- LUTTableInfo TblInfo[8];
- }LUTHead;
- typedef struct LUTStruct
- {
- UINT8 LUTID[3];
- UINT8 Version;
- UINT32 FileSize;
- UINT16 IndexOffset;
- UINT16 HeadLength;
- UINT8 TableCount;
- UINT8 SrcCount;
- UINT8 HueScale;
- UINT8 SatScale;
- UINT8 SrcIndex[32];
- UINT8 Reserved1[16];
- UINT8 Tag[32];
- LUTTableInfo TblInfo[8];
- UINT32 Pivot0[512];
- UINT16 PivotStrength0[512];
- UINT32 Pivot1[512];
- UINT16 PivotStrength1[512];
- UINT32 Pivot2[512];
- UINT16 PivotStrength2[512];
- UINT32 Pivot3[512];
- UINT16 PivotStrength3[512];
- UINT32 Pivot4[512];
- UINT16 PivotStrength4[512];
- UINT32 Pivot5[512];
- UINT16 PivotStrength5[512];
- UINT32 Pivot6[512];
- UINT16 PivotStrength6[512];
- UINT32 Pivot7[512];
- UINT16 PivotStrength7[512];
- UINT8 Reserved2[12];
- UINT16 FileXorCRC;
- } LUTTable, *PLUTTable;
- typedef struct _COLOR_LUT_330C_6BIT_INT
- {
- INT32 iCb:6;
- INT32 iCr:6;
- INT32 iY:6;
- }COLOR_LUT_330C_6BIT_INT;
- typedef struct _NR_BLOCKALPHA_DEFINE
- {
- UINT32 mmap_en;
- STRENGTH_DEFINE mthr[5];
- STRENGTH_DEFINE mslp[6];
- STRENGTH_DEFINE mfac[6];
- } NR_BLOCKALPHA_DEFINE;
- typedef struct NR_Setting_BY_Group_Idx
- {
- STRENGTH_DEFINE LumaTnrCoring;
- STRENGTH_DEFINE LumaTnrStrength;
- STRENGTH_DEFINE ChromaTnrCoring;
- STRENGTH_DEFINE ChromaTnrStrength;
- STRENGTH_DEFINE LumaSnr1Coring;
- STRENGTH_DEFINE LumaSnr1Strength;
- STRENGTH_DEFINE LumaSnr2Coring;
- STRENGTH_DEFINE LumaSnr2Strength;
- STRENGTH_DEFINE ChromaSnrCoring;
- STRENGTH_DEFINE ChromaSnrStrength;
- STRENGTH_DEFINE BlockNrCoring;
- STRENGTH_DEFINE BlockNrStrength;
- STRENGTH_DEFINE MosquitoNrCoring;
- STRENGTH_DEFINE MosquitoNrStrength;
- INT32 TnrUltraLowCtl; //v23 //bit[0]:weak bit[1]:medium bit[2]:strong
- INT32 SnrUltraLowCtl;
- NR_BLOCKALPHA_DEFINE NRBlockAlpha[NR_BLOCK_ALPHA_END];
- }NR_Setting_BY_Group_Idx;
- typedef struct _NR_Setting
- {
- UINT8 mNRSourceGroupedIndex[20];
- NR_Setting_BY_Group_Idx mNRSetting_byGroupIdx[VIP_TABLE_GROUPED_NUMBER];
- }NR_Setting;
- typedef struct _UV_Coring_BY_Group_Idx
- {
- INT32 iUVCoring_en;
- INT32 iUVCoring;
- }UV_Coring_BY_Group_Idx;
- typedef struct _UV_Coring
- {
- UINT8 mUV_CoringGroupedIndex[20];
- UV_Coring_BY_Group_Idx UV_Coring_BY_Group_Idx[VIP_TABLE_GROUPED_NUMBER];
- }UV_Coring;
- typedef struct _UV_Coring_ext
- {
- INT32 UVCoringOpt;
- INT32 iUVCoring_2;
- INT32 iUVCoring_3;
- INT32 bluma_th_lo[2];
- INT32 bluma_th_hi[2];
- INT32 bBlend_slope[2];
- }UV_Coring_ext;
- //=== new sharpness PREDCTI
- typedef struct _SHARP_PREDCTI_DATA
- {
- INT32 iPreDCTIEnable;
- INT32 iPreChromaFilterEnable;
- INT32 iPostChromaFilterEnable;
- INT32 iPreChromaFilterLevel;
- INT32 icoef[3];
- INT32 iScale[PQ_SHARPNESS_PERCENT_END];
- INT32 iGainTap[PQ_SHARPNESS_PERCENT_END];
- INT32 iShootTap[PQ_SHARPNESS_PERCENT_END];
- INT32 iGain0[PQ_SHARPNESS_PERCENT_END];
- INT32 iGain1[PQ_SHARPNESS_PERCENT_END];
- INT32 iGain2[PQ_SHARPNESS_PERCENT_END];
- INT32 iTh0[PQ_SHARPNESS_PERCENT_END];
- INT32 iTh1[PQ_SHARPNESS_PERCENT_END];
- INT32 iSlope0[PQ_SHARPNESS_PERCENT_END];
- INT32 iSlope1[PQ_SHARPNESS_PERCENT_END];
- }SHARP_PREDCTI_DATA;
- typedef struct _SHARP_PREDCTI
- {
- UINT8 mGroupedIndex[20];
- SHARP_PREDCTI_DATA mPreDCTIData[VIP_TABLE_GROUPED_NUMBER];
- }SHARP_PREDCTI;
- typedef struct _SHARP_PREDCTI_EXT
- {
- INT32 iGain_Lp[PQ_SHARPNESS_PERCENT_END];
- INT32 iSlp_Lp[PQ_SHARPNESS_PERCENT_END];
- }SHARP_PREDCTI_EXT;
- //=== new sharpness POSTDCTI
- typedef struct _SHARP_POSTDCTI_DATA
- {
- INT32 iPostDCTIEnable;
- INT32 iPostChromaFilterEnable;
- INT32 iPreChromaFilterEnable;
- INT32 iPostChromaFilterLevel;
- INT32 icoef[6];
- INT32 iScale[PQ_SHARPNESS_PERCENT_END];
- INT32 iGainTap[PQ_SHARPNESS_PERCENT_END];
- INT32 iShootTap[PQ_SHARPNESS_PERCENT_END];
- INT32 iGain0[PQ_SHARPNESS_PERCENT_END];
- INT32 iGain1[PQ_SHARPNESS_PERCENT_END];
- INT32 iGain2[PQ_SHARPNESS_PERCENT_END];
- INT32 iTh0[PQ_SHARPNESS_PERCENT_END];
- INT32 iTh1[PQ_SHARPNESS_PERCENT_END];
- INT32 iSlope0[PQ_SHARPNESS_PERCENT_END];
- INT32 iSlope1[PQ_SHARPNESS_PERCENT_END];
- }SHARP_POSTDCTI_DATA;
- typedef struct _SHARP_POSTDCTI
- {
- UINT8 mGroupedIndex[20];
- SHARP_POSTDCTI_DATA mPostDCTIData[VIP_TABLE_GROUPED_NUMBER];
- }SHARP_POSTDCTI;
- //=== new sharpness PREDLTI
- typedef struct _SHARP_PREDLTI_DATA
- {
- INT32 iPreDLTIEnable;
- INT32 icoef[3];
- INT32 iScale[PQ_SHARPNESS_PERCENT_END];
- INT32 iGainTap[PQ_SHARPNESS_PERCENT_END];
- INT32 iShootTap[PQ_SHARPNESS_PERCENT_END];
- INT32 iGain0[PQ_SHARPNESS_PERCENT_END];
- INT32 iGain1[PQ_SHARPNESS_PERCENT_END];
- INT32 iGain2[PQ_SHARPNESS_PERCENT_END];
- INT32 iTh0[PQ_SHARPNESS_PERCENT_END];
- INT32 iTh1[PQ_SHARPNESS_PERCENT_END];
- INT32 iSlope0[PQ_SHARPNESS_PERCENT_END];
- INT32 iSlope1[PQ_SHARPNESS_PERCENT_END];
- }SHARP_PREDLTI_DATA;
- typedef struct _SHARP_PREDLTI
- {
- UINT8 mGroupedIndex[20];
- SHARP_PREDLTI_DATA mPreDLTIData[VIP_TABLE_GROUPED_NUMBER];
- }SHARP_PREDLTI;
- //~~~ new sharpness PREDLTI
- //=== new sharpness POSTDLTI
- typedef struct _SHARP_POSTDLTI_DATA
- {
- INT32 iPostDLTIEnable;
- INT32 iDynamicClipEnable;
- INT32 icoef[6];
- INT32 iDnamicClipMode[PQ_SHARPNESS_PERCENT_END];
- INT32 iDnamicClipOverShoot[PQ_SHARPNESS_PERCENT_END];
- INT32 iDnamicClipUnderShoot[PQ_SHARPNESS_PERCENT_END];
- INT32 iDnamicClipOverShootfac[PQ_SHARPNESS_PERCENT_END];
- INT32 iDnamicClipUnderShootfac[PQ_SHARPNESS_PERCENT_END];
- INT32 iScale[PQ_SHARPNESS_PERCENT_END];
- INT32 iGainTap[PQ_SHARPNESS_PERCENT_END];
- INT32 iShootTap[PQ_SHARPNESS_PERCENT_END];
- INT32 iNormalOverShoot[PQ_SHARPNESS_PERCENT_END];
- INT32 iNormalUnderShoot[PQ_SHARPNESS_PERCENT_END];
- INT32 iGain0[PQ_SHARPNESS_PERCENT_END];
- INT32 iGain1[PQ_SHARPNESS_PERCENT_END];
- INT32 iGain2[PQ_SHARPNESS_PERCENT_END];
- INT32 iTh0[PQ_SHARPNESS_PERCENT_END];
- INT32 iTh1[PQ_SHARPNESS_PERCENT_END];
- INT32 iSlope0[PQ_SHARPNESS_PERCENT_END];
- INT32 iSlope1[PQ_SHARPNESS_PERCENT_END];
- }SHARP_POSTDLTI_DATA;
- typedef struct _SHARP_POSTDLTI
- {
- UINT8 mGroupedIndex[20];
- SHARP_POSTDLTI_DATA mPostDLTIData[VIP_TABLE_GROUPED_NUMBER];
- }SHARP_POSTDLTI;
- //=== new sharpness POST2DSHARPNESS
- typedef struct _SHARP_POST2DSHARPNESS_DATA
- {
- INT32 iPost2DSharpEnable;
- INT32 iGain0_Luma[PQ_SHARPNESS_PERCENT_END];
- INT32 iGain1_Luma[PQ_SHARPNESS_PERCENT_END];
- INT32 iGain2_Luma[PQ_SHARPNESS_PERCENT_END];
- INT32 iTh0_Luma[PQ_SHARPNESS_PERCENT_END];
- INT32 iTh1_Luma[PQ_SHARPNESS_PERCENT_END];
- INT32 iSlope0_Luma[PQ_SHARPNESS_PERCENT_END];
- INT32 iSlope1_Luma[PQ_SHARPNESS_PERCENT_END];
- INT32 iFilterMode_Luma[PQ_SHARPNESS_PERCENT_END];
- INT32 iScale_Luma[PQ_SHARPNESS_PERCENT_END];
- INT32 iGainTap_Luma[PQ_SHARPNESS_PERCENT_END];
- INT32 iShootTap_Luma[PQ_SHARPNESS_PERCENT_END];
- INT32 iNormalOverShoot[PQ_SHARPNESS_PERCENT_END];
- INT32 iNormalUnderShoot[PQ_SHARPNESS_PERCENT_END];
- INT32 iOverShootFactor[PQ_SHARPNESS_PERCENT_END];
- INT32 iUnderShootFactor[PQ_SHARPNESS_PERCENT_END];
- INT32 iGain0_Chroma[PQ_SHARPNESS_PERCENT_END];
- INT32 iGain1_Chroma[PQ_SHARPNESS_PERCENT_END];
- INT32 iGain2_Chroma[PQ_SHARPNESS_PERCENT_END];
- INT32 iTh0_Chroma[PQ_SHARPNESS_PERCENT_END];
- INT32 iTh1_Chroma[PQ_SHARPNESS_PERCENT_END];
- INT32 iSlope0_Chroma[PQ_SHARPNESS_PERCENT_END];
- INT32 iSlope1_Chroma[PQ_SHARPNESS_PERCENT_END];
- INT32 iFilterMode_Chroma[PQ_SHARPNESS_PERCENT_END];
- INT32 iScale_Chroma[PQ_SHARPNESS_PERCENT_END];
- INT32 iGainTap_Chroma[PQ_SHARPNESS_PERCENT_END];
- INT32 iShootTap_Chroma[PQ_SHARPNESS_PERCENT_END];
- }SHARP_POST2DSHARPNESS_DATA;
- typedef struct _SHARP_POST2DSHARPNESS
- {
- UINT8 mGroupedIndex[20];
- SHARP_POST2DSHARPNESS_DATA mPost2DSharpData[VIP_TABLE_GROUPED_NUMBER];
- }SHARP_POST2DSHARPNESS;
- typedef struct _SAT_GAIN_CURVE_V2_DATA
- {
- INT32 iDpySatEn;
- INT32 iDpySatOpt;
- INT32 iDpySatAll;
- INT32 iDpySatHue;
- INT32 iSat_Gain[17];
- }SAT_GAIN_CURVE_V2I_DATA;
- typedef struct _SAT_GAIN_CURVE_V2
- {
- UINT8 mGroupedIndex[20];
- SAT_GAIN_CURVE_V2I_DATA mSatGainCurve_V2_Data[VIP_TABLE_GROUPED_NUMBER];
- }SAT_GAIN_CURVE_V2;
- //=== DS Sharpness
- typedef struct _DS_SHARPNESS_DATA
- {
- STRENGTH_DEFINE SlrSharpRatio;
- DS_SHARP_INFO DSSharpWeak[2]; // y/c
- DS_SHARP_INFO DSSharpNormal[2];
- DS_SHARP_INFO DSSharpStrong[2];
- UINT32 DS_Sharp_Angle; //bit[0~1]:SD bit[2~3]angle bit[8~9]:MD bit[10~11]:angle bit[16~17]:HD bit[18~19]:angle
- DARK_SHARP_INFO DSSharpDark;
- }DS_SHARPNESS_DATA;
- typedef struct _DS_SHARPNESS
- {
- UINT8 mGroupedIndex[20];
- DS_SHARPNESS_DATA mDS_Sharpness_Data[VIP_TABLE_GROUPED_NUMBER];
- }DS_SHARPNESS;
- //=== HOR Sharpness
- typedef struct _HOR_SHARPNESS_DATA
- {
- DS_SHARP_INFO HorSharpWeak[2]; //v32 y/c
- DS_SHARP_INFO HorSharpNormal[2];
- DS_SHARP_INFO HorSharpStrong[2];
- DARK_SHARP_INFO HorSharpDark;
- }HOR_SHARPNESS_DATA;
- typedef struct _HOR_SHARPNESS
- {
- UINT8 mGroupedIndex[20];
- HOR_SHARPNESS_DATA mHOR_Sharpness_Data[VIP_TABLE_GROUPED_NUMBER];
- }HOR_SHARPNESS;
- //=== Sharpness
- typedef struct _SHARPNESS_DATA
- {
- SHARP_INFO sharp_strong[4];
- SHARP_INFO sharp_normal[4];
- SHARP_INFO sharp_weak[4];
- }SHARPNESS_DATA;
- typedef struct _SHARPNESS
- {
- UINT8 mGroupedIndex[20];
- SHARPNESS_DATA mSharpness_Data[VIP_TABLE_GROUPED_NUMBER];
- }SHARPNESS;
- //=== Peaking
- typedef struct _PEAKING_DATA
- {
- PEAKING_SETTING Peaking[3]; //sd,md,hd
- }PEAKING_DATA;
- typedef struct _PEAKING
- {
- UINT8 mGroupedIndex[20];
- PEAKING_DATA mPeaking_Data[VIP_TABLE_GROUPED_NUMBER];
- }PEAKING;
- typedef struct _PEAKING_DATA_EXT
- {
- PEAKING_SETTING_EXT Peaking[3]; //sd,md,hd
- }PEAKING_DATA_EXT;
- //=== Range
- typedef struct _RANGE_DATA
- {
- REG_RANGE BrightnessRange;
- REG_RANGE ContrastRange;
- REG_RANGE ColorTempGainRange;
- REG_RANGE ColorTempOffsetRange;
- REG_RANGE SaturationRange;
- REG_RANGE HueRange;
- REG_RANGE_EXT BrightnessRangeExt;
- REG_RANGE_EXT ContrastRangeExt;
- REG_RANGE_EXT SaturationRangeExt;
- }RANGE_DATA;
- typedef struct _RANGE
- {
- UINT8 mGroupedIndex[20];
- RANGE_DATA mRange_Data[VIP_TABLE_GROUPED_NUMBER];
- }RANGE;
- //=== DINTERLACE FILTER
- typedef struct _DEIN_FILTER_DATA
- {
- INT32 sd_vdi_mad_hlp_en;
- INT32 sd_slr_mix_ach;
- INT32 sd_slr_mix_bch;
- INT32 md_vdi_mad_hlp_en;
- INT32 md_slr_mix_ach;
- INT32 md_slr_mix_bch;
- INT32 hd_vdi_mad_hlp_en;
- INT32 hd_slr_mix_ach;
- INT32 hd_slr_mix_bch;
- } DEIN_FILTER_DATA;
- typedef struct _DEIN_FILTER
- {
- UINT8 mGroupedIndex[20];
- DEIN_FILTER_DATA mDeIN_Fil_Data[VIP_TABLE_GROUPED_NUMBER];
- }DEIN_FILTER;
- //=== COLOR MATRIX
- typedef struct _COLOR_MATRIX_DATA
- {
- CSC_SETTING mSrcColorMatrix[2];
- } COLOR_MATRIX_DATA;
- typedef struct _COLOR_MATRIX
- {
- UINT8 mGroupedIndex[20];
- COLOR_MATRIX_DATA mSrcColorMatrix[VIP_TABLE_GROUPED_NUMBER];
- }COLOR_MATRIX;
- //=== Dynamic Contrast
- typedef struct _DLC_SET_CURVE_PARAM
- {
- ST_SWDC_Slope dlc_luma_slope;
- ST_SWDC_Chroma dlc_chroma_slope;
- INT32 dlc_En;
- INT32 dlc_Var_Cond_En;
- INT32 dlc_Ratio[6];
- INT32 dlc_Factor[5];
- INT32 dlc_Alpha;
- INT32 dlc_Static_Alpha[4];
- INT32 dlc_YLevel;
- INT32 dlc_CLevel;
- } DLC_SET_CURVE_PARAM;
- typedef struct _DynamicContrast
- {
- UINT8 mGroupedIndex[20];
- DLC_SET_CURVE_PARAM mDLC_Table[VIP_TABLE_GROUPED_NUMBER];
- }DynamicContrast;
- typedef enum
- {
- NR_SNR_BEFORE_SCALER,
- NR_SNR_AFTER_SCALER,
- NR_SNR_CASE1,//mantis #50079
- NR_SNR_END ,
- }PQ_NR_SNR_TYPE;
- typedef struct _SNR_DATA
- {
- STRENGTH_DEFINE SNR_Sel;
- STRENGTH_DEFINE SNR_Chk_Middle_Pxl;
- STRENGTH_DEFINE SNR_th;
- STRENGTH_DEFINE SNR_Gain[SNR_MAP_GAIN_NUM];
- STRENGTH_DEFINE SNR_Slope;
- }SNR_DATA;
- typedef struct _SNR_Setting
- {
- int SNR_MapByPass;
- SNR_DATA SNR_Luma;
- SNR_DATA SNR_Chroma;
- }SNR_Setting;
- //=== sigama NR
- typedef struct _SigamaNR_Region_Data
- {
- INT32 bTemporal;
- INT32 bVarScale;
- INT32 bGain;
- INT32 bVMotScale;
- INT32 bVRefScale;
- }SigamaNR_Region_Data;
- typedef struct _SigamaNR_Complexity_level_Data
- {
- INT32 bLowTH;
- INT32 bMiddleTH;
- INT32 bHighTH;
- }SigamaNR_Complexity_level_Data;
- typedef struct _SigamaNR_Post_TNR_Gain_Data
- {
- INT32 bWeak;
- INT32 bNormal;
- INT32 bStrong;
- }SigamaNR_Post_TNR_Gain_Data;
- typedef struct _SigamaNR_Adaptive_Static_TH_Data
- {
- INT32 bWeak;
- INT32 bNormal;
- INT32 bStrong;
- INT32 bLowNoiseTH;
- INT32 bStaticTH;
- INT32 bDetailTH;
- INT32 bComplexScale;
- INT32 bVarScale;
- INT32 bDetailScale;
- }SigamaNR_Adaptive_Static_TH_Data;
- typedef struct _SigamaNR_Variance_Upper_Bound_Data
- {
- UINT32 bWeak[2];
- UINT32 bNormal[2];
- UINT32 bStrong[2];
- }SigamaNR_Variance_Upper_Bound_Data;
- typedef struct _Sigama_NR_Data
- {
- INT32 sigama_NR_opt;
- INT32 sigama_NR_mode;
- SigamaNR_Region_Data SigamaNR_Region[3];
- SigamaNR_Complexity_level_Data SigamaNR_Complexity_level;
- SigamaNR_Adaptive_Static_TH_Data SigamaNR_Adaptive_Static_TH;
- SigamaNR_Post_TNR_Gain_Data SigamaNR_Post_TNR_Gain;
- SigamaNR_Variance_Upper_Bound_Data SigamaNR_Variance_Upper_Bound;
- INT32 SigamaNRBase;
- INT32 SigamaNRBound;
- INT32 Variance_TH[7];
- INT32 Motion_TH[7];
- }Sigama_NR_Data;
- typedef struct _Sigama_NR_Setting
- {
- UINT8 mGroupedIndex[20];
- Sigama_NR_Data Sigama_NR[VIP_TABLE_GROUPED_NUMBER];
- }Sigama_NR_Setting;
- //~~~ sigama NR
- //Peaking DLTI
- typedef struct _Peaking_DLTI_Data
- {
- /*
- INT32 SLR2DSelSp;
- INT32 SharpnessXp0Peak;
- INT32 SharpnessXp1Peak;
- INT32 SharpnessXp2Peak;
- INT32 SharpnessXp3Peak;
- INT32 SharpnessYp0Peak;
- INT32 SharpnessYp1Peak;
- INT32 SharpnessYp2Peak;
- INT32 SharpnessMp1Peak;
- INT32 SharpnessMp2Peak;
- INT32 SharpnessXp0Lti;
- INT32 SharpnessXp1Lti;
- INT32 SharpnessXp2Lti;
- INT32 SharpnessXp3Lti;
- INT32 SharpnessYp0Lti;
- INT32 SharpnessYp1Lti;
- INT32 SharpnessYp2Lti;
- INT32 SharpnessMp1Lti;
- INT32 SharpnessMp2Lti;
- INT32 SharpnessPeakingEn;
- INT32 SharpnessLTIEn;
- INT32 SharpnessFilterModePeak1D; //peaking, fixed filter
- INT32 SharpnessGainBPPeak1D;
- INT32 SharpnessGainEPPeak1D;
- INT32 SharpnessGainHPPeak1D;
- INT32 SharpnessGainNegPeak;
- INT32 SharpnessPeakingHpTap;
- INT32 SharpnessPeakingBpTap;
- INT32 SharpnessPeakingEpTap;
- INT32 SharpnessGainHPV31; //V peaking, BP, 3 Tap gain
- INT32 SharpnessGainHPV51; //V peaking, BP, 5 Tap gain
- INT32 SharpnessLowPassPeak1D;// peaking, LP Filter, pre LP filter
- INT32 SharpnessAbsLpEnPeak; // peaking, LP Filter, pre LP filter
- INT32 SharpnessLowPassLti; // DLTI, LP Filter, pre LP filter
- INT32 SharpnessAbsLpEnLti; // DLTI, LP Filter, post LP filter
- INT32 SharpnessCoringPeak1D; // peaking other, H peaking coring
- INT32 SharpnessCoringPeak; // peaking other, post coring
- INT32 SharpnessCoringPeakV; // peaking other, V peaking coring
- INT32 SharpnessHiCoringPeak; // peaking other, Threshold
- INT32 SharpnessGainHP0Peak2D; // peaking, 2D, HP gain, 3 tap
- INT32 SharpnessGainHP1Peak2D; // peaking, 2D, HP gain, 5 tap
- INT32 SharpnessGainBP0Peak2D; // peaking, 2D, BP gain, 7 tap
- INT32 SharpnessGainBP1Peak2D; // peaking, 2D, BP gain, 9 tap
- INT32 SharpnessCoringPeak2D; // peaking, 2D, Coring
- INT32 SharpnessMaxMinHSLrTap; // Peaking new method, H Residual
- INT32 SharpnessMaxMinVSLrTap; // Peaking new method, V Residual
- INT32 SharpnessAdjcentDiffTh; // Peaking new method, Different TH
- INT32 SharpnessDLTIHpTap;
- INT32 SharpnessDLTIBpTap;
- INT32 SharpnessDLTIEpTap;
- INT32 SharpnessDLTIBpGain;
- INT32 SharpnessDLTIEpGain;
- INT32 SharpnessDLTIHpGain;
- INT32 SharpnessStSel; //DLTI, Others, stepness filter
- INT32 SharpnessCoringLti; //DLTI, Others, coring
- INT32 SharpnessHiCoringLti;// DLTI, others, threshold
- INT32 SharpnessDeOvstNewMethodPeak; // DeOverShot, peaking selection
- INT32 SharpnessDeOvseNewMethodLti; // DeOverShot, DLTI selection
- INT32 SharpnessOverMaxPeak; //peaking, max clip
- INT32 SharpnessOverMinPeak;
- INT32 SharpnessOvstGainMaxPeak; //max gain
- INT32 SharpnessOvstGainMinPeak; // min gain
- INT32 SharpnessOverMaxLti; //DLTI, max clip
- INT32 SharpnessOverMinLti;
- INT32 SharpnessOvstGainMaxLti; //max gain
- INT32 SharpnessOvstGainMinLti; // min gain
- INT32 SharpnessMaxMinHSLrTapLti; // DLTI new method, H Residual
-
- /////////// delete above
- */
- // peaking
- INT32 SLR2DSelSp[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessXp0Peak[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessXp1Peak[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessXp2Peak[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessXp3Peak[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessYp0Peak[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessYp1Peak[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessYp2Peak[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessMp1Peak[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessMp2Peak[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessXp0Lti[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessXp1Lti[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessXp2Lti[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessXp3Lti[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessYp0Lti[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessYp1Lti[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessYp2Lti[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessMp1Lti[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessMp2Lti[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessPeakingEn[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessLTIEn[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessFilterModePeak1D[PQ_SHARPNESS_PERCENT_END]; //peaking, fixed filter
- INT32 SharpnessGainBPPeak1D[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessGainEPPeak1D[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessGainHPPeak1D[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessGainNegPeak[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessPeakingHpTap[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessPeakingBpTap[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessPeakingEpTap[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessGainHPV31[PQ_SHARPNESS_PERCENT_END]; //V peaking, BP, 3 Tap gain
- INT32 SharpnessGainHPV51[PQ_SHARPNESS_PERCENT_END]; //V peaking, BP, 5 Tap gain
- INT32 SharpnessLowPassPeak1D[PQ_SHARPNESS_PERCENT_END];// peaking, LP Filter, pre LP filter
- INT32 SharpnessAbsLpEnPeak[PQ_SHARPNESS_PERCENT_END]; // peaking, LP Filter, pre LP filter
- INT32 SharpnessLowPassLti[PQ_SHARPNESS_PERCENT_END]; // DLTI, LP Filter, pre LP filter
- INT32 SharpnessAbsLpEnLti[PQ_SHARPNESS_PERCENT_END]; // DLTI, LP Filter, post LP filter
- INT32 SharpnessCoringPeak1D[PQ_SHARPNESS_PERCENT_END]; // peaking other, H peaking coring
- INT32 SharpnessCoringPeak[PQ_SHARPNESS_PERCENT_END]; // peaking other, post coring
- INT32 SharpnessCoringPeakV[PQ_SHARPNESS_PERCENT_END]; // peaking other, V peaking coring
- INT32 SharpnessHiCoringPeak[PQ_SHARPNESS_PERCENT_END]; // peaking other, Threshold
- INT32 SharpnessGainHP0Peak2D[PQ_SHARPNESS_PERCENT_END]; // peaking, 2D, HP gain, 3 tap
- INT32 SharpnessGainHP1Peak2D[PQ_SHARPNESS_PERCENT_END]; // peaking, 2D, HP gain, 5 tap
- INT32 SharpnessGainBP0Peak2D[PQ_SHARPNESS_PERCENT_END]; // peaking, 2D, BP gain, 7 tap
- INT32 SharpnessGainBP1Peak2D[PQ_SHARPNESS_PERCENT_END]; // peaking, 2D, BP gain, 9 tap
- INT32 SharpnessCoringPeak2D[PQ_SHARPNESS_PERCENT_END]; // peaking, 2D, Coring
- INT32 SharpnessMaxMinHSLrTap[PQ_SHARPNESS_PERCENT_END]; // Peaking new method, H Residual
- INT32 SharpnessMaxMinVSLrTap[PQ_SHARPNESS_PERCENT_END]; // Peaking new method, V Residual
- INT32 SharpnessAdjcentDiffTh[PQ_SHARPNESS_PERCENT_END]; // Peaking new method, Different TH
- INT32 SharpnessDLTIHpTap[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessDLTIBpTap[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessDLTIEpTap[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessDLTIBpGain[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessDLTIEpGain[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessDLTIHpGain[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessStSel[PQ_SHARPNESS_PERCENT_END]; //DLTI, Others, stepness filter
- INT32 SharpnessCoringLti[PQ_SHARPNESS_PERCENT_END]; //DLTI, Others, coring
- INT32 SharpnessHiCoringLti[PQ_SHARPNESS_PERCENT_END];// DLTI, others, threshold
- INT32 SharpnessDeOvstNewMethodPeak[PQ_SHARPNESS_PERCENT_END]; // DeOverShot, peaking selection
- INT32 SharpnessDeOvseNewMethodLti[PQ_SHARPNESS_PERCENT_END]; // DeOverShot, DLTI selection
- INT32 SharpnessOverMaxPeak[PQ_SHARPNESS_PERCENT_END]; //peaking, max clip
- INT32 SharpnessOverMinPeak[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessOvstGainMaxPeak[PQ_SHARPNESS_PERCENT_END]; //max gain
- INT32 SharpnessOvstGainMinPeak[PQ_SHARPNESS_PERCENT_END]; // min gain
- INT32 SharpnessOverMaxLti[PQ_SHARPNESS_PERCENT_END]; //DLTI, max clip
- INT32 SharpnessOverMinLti[PQ_SHARPNESS_PERCENT_END];
- INT32 SharpnessOvstGainMaxLti[PQ_SHARPNESS_PERCENT_END]; //max gain
- INT32 SharpnessOvstGainMinLti[PQ_SHARPNESS_PERCENT_END]; // min gain
- INT32 SharpnessMaxMinHSLrTapLti[PQ_SHARPNESS_PERCENT_END]; // DLTI new method, H Residual
-
- }Peaking_DLTI_Data;
- typedef struct _Peaking_DLTI_Setting
- {
- UINT8 mGroupedIndex[20];
- Peaking_DLTI_Data Peaking_DLTI[VIP_TABLE_GROUPED_NUMBER];
- }Peaking_DLTI_Setting;
- //~Peaking DLTI
- //UV offset
- typedef struct _UV_Offset_Data
- {
- INT32 UVOffsetEn;
- INT32 UVOffsetMethodSelect;
- INT32 DPYOffLumiLow;
- INT32 DPYOffLumiHigh;
- INT32 DPYUVOffCbMethod1;
- INT32 DPYUVOffCbMethod2;
- INT32 DPYSlopeMaxRGBCb;
- INT32 DPYUVOffCrMethod1;
- INT32 DPYUVOffCrMethod2;
- INT32 DPYSlopeMaxRGBCr;
- INT32 DPYOffSatLowLow2;
- INT32 DPYOffSatLowLow;
- INT32 DPYOffSatLow;
- INT32 DPYOffSatHigh;
- INT32 DPYUVSatOffsetCb;
- INT32 UVOffsetCb;
- INT32 DPYSlopeSatCb2;
- INT32 DPYSlopeSatCb;
- INT32 DPYUVSatOffsetCr;
- INT32 UVOffsetCr;
- INT32 DPYSlopeSatCr2;
- INT32 DPYSlopeSatCr;
- }UV_Offset_Data;
- typedef struct _UV_Offset_Setting
- {
- UV_Offset_Data UVOffset[VIP_TABLE_GROUPED_NUMBER];
- }UV_Offset_Setting;
- //~UV offset
- //becareful! never change order or data type.
- typedef struct _VTAB_CMN_VALUE_DEFINE
- {
- int MagicNumber1;
- CSC_SETTING mColorSpaceConversionTable[3]; //v17// only 601 709 RGB
- int MagicNumber2;
- GAMMA_OPT mGmaOpt; //v18
- int MagicNumber3;
- INT32 ucLoadScartRGBTab; //v21
- int MagicNumber4;
- DS_SHARP_RATIO mSharpRatio[2]; //v22 //y/c
- int MagicNumber5;
- INT32 iSharpRatio6; //v27
- int MagicNumber6;
- INT32 iSharpRatio6_c; //v27
- int MagicNumber7;
- SAT_GAIN_CURVE mSatGainCurve; //v33
- int MagicNumber8;
- DynamicContrast mDynContrast;
- UINT32 MagicNumber9;
- NR_Setting mNRSetting;
- int MagicNumber10;
- UV_Coring mUV_Coring;
- int MagicNumber11;
- SHARP_PREDCTI mSharpness_PreDCTI;
- int MagicNumber12;
- SHARP_POSTDCTI mSharpness_PostDCTI;
- int MagicNumber13;
- SHARP_POSTDLTI mSharpness_PostDLTI;
- int MagicNumber14;
- SHARP_POST2DSHARPNESS mSharpness_Post2DSharpness;
- int MagicNumber15;
- SAT_GAIN_CURVE_V2 mSatGainCurve_V2;
- int MagicNumber16;
- DS_SHARPNESS mDS_Sharpenss;
- int MagicNumber17;
- HOR_SHARPNESS mHOR_Sharpenss;
- int MagicNumber18;
- PEAKING mPeaking;
- int MagicNumber19;
- RANGE mRange;
- int MagicNumber20;
- DEIN_FILTER mDeinterlaceFilter;
- int MagicNumber21;
- COLOR_MATRIX mColorMatrix;
- int MagicNumber22;
- SHARPNESS mSharpenss;
- int MagicNumber23;
- UINT32 SlrLowAngleOrMBWDisable;
- int MagicNumber24;
- SNR_Setting mSNR1Setting[VIP_TABLE_GROUPED_NUMBER]; // only work at 331 chip
- SNR_Setting mSNR2Setting[VIP_TABLE_GROUPED_NUMBER]; // only work at 331 chip
- int MagicNumber25;
- Sigama_NR_Setting mSigama_NR; // only work after 131 chip
- UV_Coring_ext mUV_Coring_ext[VIP_TABLE_GROUPED_NUMBER]; // only work after 131 chip
- SHARP_PREDCTI_EXT mSharp_PreDCTI_Ext[VIP_TABLE_GROUPED_NUMBER]; // only work after 131 chip
- SHARP_PREDLTI mSharpness_PreDLTI; // only work after 131 chip
- PEAKING_DATA_EXT mPeakingExt[VIP_TABLE_GROUPED_NUMBER]; // only work after 131 chip
- int Sigma_NR_Misc_Ctl[VIP_TABLE_GROUPED_NUMBER];
- int MagicNumber26;
- Peaking_DLTI_Setting mPeakingDLTI;// only work after 8506 chip
- UV_Offset_Setting mUVOffset; // only work after 8506 chip
- int MagicNumber27;
- } VTAB_CMN_VALUE_DEFINE;
- typedef struct _VTAB_SRC_VALUE_DEFINE
- {
- INT32 iReserve1,iReserve2;
- //v18
- INT32 ColorRegionSrcCtl[4]; //v19 //bit[0~5]:region[0~5] bit[6]:flesh tone bit[7]:source control enable
- //[0]:601 ctl, [1]:709 ctl, [2]:pal ctl, [3]:xvYcc
- //v20 // only 601 709
- //v28 //bit[0]:slr_low_dis_rgn1_en bit[1]:slr_low_dis_rgn2_en bit[2]:slr_low_dis_rgn3_en bit[3]:slr_mbw_dis_rgn1_en bit[4]:slr_mbw_dis_rgn2_en bit[5]:slr_mbw_dis_rgn3_en
- } VTAB_SRC_VALUE_DEFINE;
- #ifdef DYNAMIC_BACKLIGHT
- typedef struct _DYNAMIC_BACKLIGHT_PARAM
- {
- UINT32 dwTableMin; //min and max of baclight in panel set table
- UINT32 dwTableMid;
- UINT32 dwTableMax;
- UINT32 dwTableNormal;
- UINT32 dwLightMin; //min and max of baclight in certain rate(cause by light sensor or energy saving)
- UINT32 dwLightMid;
- UINT32 dwLightMax;
- UINT32 dwLightQuot;
- UINT32 dwLightNormal;
- UINT32 dwLightTarget;
- INT32 iAdd;
- UINT32 dwWhiteLevel;
- UINT8 nBound1,nBound2,nBound3,nBound4,nBound0,nBound0_more,nBound5; //boundaries in gray level: 0~255
- UINT16 wDetectFrameCount;
- UINT8 ucLevel;
- UINT8 ucLevelTarget;
- UINT8 ucOrder; //1: much setting value has less backlight
- UINT8 bLightSensor:1;
- UINT8 bLSChangeBacklight;
- INT32 iLSADD;
- UINT32 dwLSTarge;
- UINT32 dwBackLightRate;
- UINT8 ucAllBlackStatus;
- struct semaphore sem;
- UINT32 BacklightTab[15];
- UINT8 ucTop, ucBot, ucTh_low, ucTh_High, ucbase; //0~100%
- UINT8 ucHistMinPercentage;
- UINT8 ucDynamicBLType;
- UINT8 ucDBLContrastHi;
- UINT8 ucDBLContrastLow;
- UINT16 PWMDutyMax;
- UINT16 PWMDutyMin;
- Electity_PWM_Mapping_Table* pElectricity_PWM_table;
- UINT32 Electricity_PWM_table_Size;
- } DYNAMIC_BACKLIGHT_PARAM;
- #endif //#ifdef DYNAMIC_BACKLIGHT
- typedef struct _SHARP_PREDCTI_RESERVE
- {
- INT32 iTagetFac0;
- INT32 iTagetFac1;
- INT32 iTagetFac2;
- INT32 iTagetTh0;
- INT32 iTagetTh1;
- INT32 iTagetSlp0;
- INT32 iTagetSlp1;
- INT32 iTargetScale;
- INT32 iTargetGainTap;
- INT32 iTargetShootTap;
- INT32 iTargetGainLpTap;
- INT32 iTagetSlpLp;
- }SHARP_PREDCTI_RESERVE;
- typedef struct _SHARP_POSTDCTI_RESERVE
- {
- INT32 iTagetFac0;
- INT32 iTagetFac1;
- INT32 iTagetFac2;
- INT32 iTagetTh0;
- INT32 iTagetTh1;
- INT32 iTagetSlp0;
- INT32 iTagetSlp1;
- INT32 iTargetScale;
- INT32 iTargetGainTap;
- INT32 iTargetShootTap;
- }SHARP_POSTDCTI_RESERVE;
- typedef struct _SHARP_PREDLTI_RESERVE
- {
- INT32 iTagetFac0;
- INT32 iTagetFac1;
- INT32 iTagetFac2;
- INT32 iTagetTh0;
- INT32 iTagetTh1;
- INT32 iTagetSlp0;
- INT32 iTagetSlp1;
- INT32 iTargetScale;
- INT32 iTargetGainTap;
- INT32 iTargetShootTap;
- }SHARP_PREDLTI_RESERVE;
- typedef struct _SHARP_POSTDLTI_RESERVE
- {
- INT32 iTagetFac0;
- INT32 iTagetFac1;
- INT32 iTagetFac2;
- INT32 iTagetTh0;
- INT32 iTagetTh1;
- INT32 iTagetSlp0;
- INT32 iTagetSlp1;
- INT32 iTargetScale;
- INT32 iTargetGainTap;
- INT32 iTargetShootTap;
- INT32 iTargetDCMode;
- INT32 iTargetDCOverShoot;
- INT32 iTargetDCUnderShoot;
- INT32 iTargetDCOverShootfac;
- INT32 iTargetDCUnderShootfac;
- INT32 iTargetNorOverShoot;
- INT32 iTargetNorlUnderShoot;
- }SHARP_POSTDLTI_RESERVE;
- typedef struct _SHARP_POST2D_RESERVE
- {
- INT32 iTagetFac0_L;
- INT32 iTagetFac1_L;
- INT32 iTagetFac2_L;
- INT32 iTagetTh0_L;
- INT32 iTagetTh1_L;
- INT32 iTagetSlp0_L;
- INT32 iTagetSlp1_L;
- INT32 iTargetFM_L;
- INT32 iTargetScale_L;
- INT32 iTargetGainTap_L;
- INT32 iTargetShootTap_L;
- INT32 iTargetNorOverShoot;
- INT32 iTargetNorlUnderShoot;
- INT32 iTargetOverShootfac;
- INT32 iTargetUnderShootfac;
- INT32 iTagetFac0_C;
- INT32 iTagetFac1_C;
- INT32 iTagetFac2_C;
- INT32 iTagetTh0_C;
- INT32 iTagetTh1_C;
- INT32 iTagetSlp0_C;
- INT32 iTagetSlp1_C;
- INT32 iTargetFM_C;
- INT32 iTargetScale_C;
- INT32 iTargetGainTap_C;
- INT32 iTargetShootTap_C;
- }SHARP_POST2D_RESERVE;
- typedef struct _SHARP_PEAKING_DLTI_RESERVE
- {
- INT32 SLR2DSelSp;
- INT32 SharpnessXp0Peak;
- INT32 SharpnessXp1Peak;
- INT32 SharpnessXp2Peak;
- INT32 SharpnessXp3Peak;
- INT32 SharpnessYp0Peak;
- INT32 SharpnessYp1Peak;
- INT32 SharpnessYp2Peak;
- INT32 SharpnessMp1Peak;
- INT32 SharpnessMp2Peak;
- INT32 SharpnessXp0Lti;
- INT32 SharpnessXp1Lti;
- INT32 SharpnessXp2Lti;
- INT32 SharpnessXp3Lti;
- INT32 SharpnessYp0Lti;
- INT32 SharpnessYp1Lti;
- INT32 SharpnessYp2Lti;
- INT32 SharpnessMp1Lti;
- INT32 SharpnessMp2Lti;
- INT32 SharpnessPeakingEn;
- INT32 SharpnessLTIEn;
- INT32 SharpnessFilterModePeak1D; //peaking, fixed filter
- INT32 SharpnessGainBPPeak1D;
- INT32 SharpnessGainEPPeak1D;
- INT32 SharpnessGainHPPeak1D;
- INT32 SharpnessGainNegPeak;
- INT32 SharpnessPeakingHpTap;
- INT32 SharpnessPeakingBpTap;
- INT32 SharpnessPeakingEpTap;
- INT32 SharpnessGainHPV31; //V peaking, BP, 3 Tap gain
- INT32 SharpnessGainHPV51; //V peaking, BP, 5 Tap gain
- INT32 SharpnessLowPassPeak1D;// peaking, LP Filter, pre LP filter
- INT32 SharpnessAbsLpEnPeak; // peaking, LP Filter, pre LP filter
- INT32 SharpnessLowPassLti; // DLTI, LP Filter, pre LP filter
- INT32 SharpnessAbsLpEnLti; // DLTI, LP Filter, post LP filter
- INT32 SharpnessCoringPeak1D; // peaking other, H peaking coring
- INT32 SharpnessCoringPeak; // peaking other, post coring
- INT32 SharpnessCoringPeakV; // peaking other, V peaking coring
- INT32 SharpnessHiCoringPeak; // peaking other, Threshold
- INT32 SharpnessGainHP0Peak2D; // peaking, 2D, HP gain, 3 tap
- INT32 SharpnessGainHP1Peak2D; // peaking, 2D, HP gain, 5 tap
- INT32 SharpnessGainBP0Peak2D; // peaking, 2D, BP gain, 7 tap
- INT32 SharpnessGainBP1Peak2D; // peaking, 2D, BP gain, 9 tap
- INT32 SharpnessCoringPeak2D; // peaking, 2D, Coring
- INT32 SharpnessMaxMinHSLrTap; // Peaking new method, H Residual
- INT32 SharpnessMaxMinVSLrTap; // Peaking new method, V Residual
- INT32 SharpnessAdjcentDiffTh; // Peaking new method, Different TH
- INT32 SharpnessDLTIHpTap;
- INT32 SharpnessDLTIBpTap;
- INT32 SharpnessDLTIEpTap;
- INT32 SharpnessDLTIBpGain;
- INT32 SharpnessDLTIEpGain;
- INT32 SharpnessDLTIHpGain;
- INT32 SharpnessStSel; //DLTI, Others, stepness filter
- INT32 SharpnessCoringLti; //DLTI, Others, coring
- INT32 SharpnessHiCoringLti;// DLTI, others, threshold
- INT32 SharpnessDeOvstNewMethodPeak; // DeOverShot, peaking selection
- INT32 SharpnessDeOvseNewMethodLti; // DeOverShot, DLTI selection
- INT32 SharpnessOverMaxPeak; //peaking, max clip
- INT32 SharpnessOverMinPeak;
- INT32 SharpnessOvstGainMaxPeak; //max gain
- INT32 SharpnessOvstGainMinPeak; // min gain
- INT32 SharpnessOverMaxLti; //DLTI, max clip
- INT32 SharpnessOverMinLti;
- INT32 SharpnessOvstGainMaxLti; //max gain
- INT32 SharpnessOvstGainMinLti; // min gain
- INT32 SharpnessMaxMinHSLrTapLti; // DLTI new method, H Residual
- }SHARP_PEAKING_DLTI_RESERVE;
- typedef struct _LUMA_HISTOGRAM
- {
- UINT32 ulLumaHistBin[16];
- UINT32 dwTotalPixel;
- UINT8 ucDataUpdated;
- }LUMA_HISTOGRAM;
- typedef struct _CHROMA_HISTOGRAM
- {
- UINT32 ulChromaHist[18];
- UINT32 ulChromaHistAvg[18]; //ulChromaHist*100 / capture window size
- UINT32 dwTotalChromaHistPixel;
- UINT32 dwTotalChromaHistAvg;
- UINT8 ucDataUpdated;
- }CHROMA_HISTOGRAM;
- typedef struct _PQ_PATCH
- {
- UINT8 PeakLtiPatch;
- UINT8 DpyPeakingPatch;
- UINT8 DsSharpnessPatch;
- UINT8 TnrClampPatch;
- UINT8 Post2DPatch;
- UINT8 PostDLTIPatch;
- UINT8 DPYSharpnessPatch;
- }PQ_PATCH;
- typedef struct _PQ_CURVE_SETTING
- {
- INT16 iValue[5];
- }PQ_CURVE_SETTING;
- typedef struct _PQHW_CONTEXT
- {
- PQ_MENU_VALUE MenuValue;
- UINT8 ucLocationMode; //0:home mode 1:sotre mode
- UINT8 GammaIndex;
- UINT8 GammaEnable;
- UINT8 GammaCount;
- UINT32 wGamaTable[1024];
- UINT8 ucNRUserMax;
- UINT8 ucNRUserMin;
- INT32 iColorMatrixC1;
- INT32 iColorMatrixC2;
- INT32 iColorMatrixC3;
- UINT8 ucMPEGNRUserMax;
- UINT8 CVD2_store_nr_setting;
- CSC_SETTING* CurColorMatrix;
- //SAT_INFO SatInfo; //joshua: nobody use
- VTAB_CMN_VALUE_DEFINE VtabCmnValue;
- VTAB_SRC_VALUE_DEFINE* pCurVtabSrcValue;
- INT32 iCurrContrastValue; //backup current contrast value for fade in/out
- SAT_INFO SatInfo;
- USER_CURVE_INFO UserCurveInfo;
- VTAB_SRC_VALUE_DEFINE VtabSrcValue[VTAB_MAX_SOURCE];
- unsigned nNRLevel;//:2; //Noise Reduction Level: {Off, Weak, Medium, Strong}
- unsigned nMPEGNRLevel;//:2; //Noise Reduction Level of MPEG format: {Off, Weak, Medium, Strong}
- unsigned nColorSpaceMode:2; // {Off, Auto, Normal, Wide}
- unsigned bDynamicSaturation:2; //{Off, On}
- unsigned bEnableColorProcess:1;
- UINT8 ucMPEGNRUserMin;
- UINT8 Degree;
- INT8 hl_sharp;
- INT8 hc_sharp;
- INT8 hl_smooth;
- INT8 hc_smooth;
- UINT8 hl_menu_sharp;
- UINT8 hc_menu_sharp;
- BOOL bSceneChg;
- INT32 store_hl_limit;
- INT32 store_vl_limit;
- UINT8 UserCurveInit;
- UINT8 LoadPQTable;
- UINT8 ucDynamicBacklightMode;
- UINT8 ucDynamicContrastLevel;
- spinlock_t Spin_PresetContrast;
- UINT8 UserCurveSetup;
- // SOFTWARE_COLOR_MATRIX
- INT32 iBrightness;
- INT32 iRBias;
- INT32 iGBias;
- INT32 iBBias;
- INT32 iContrast;
- INT32 iRGain;
- INT32 iGGain;
- INT32 iBGain;
- INT32 iHue;
- INT32 iSaturation;
- UINT8 menu_sharpness;
- UINT8 ucMatrixbypassCtl;
- INT32 iAdjustNRCounter;
- BOOL bFadeEn;
- UINT8 ucFadeStartValue;
- UINT8 ucFadeEndValue;
- UINT8 ucFadeIncValue;
- UINT8 ucYuvDataFormat;
- //#ifdef VIP_SW_DC
- #if 1
- INT32 ulCurveSlop[16];
- UINT16 ulHistCaseCur;
- #endif
- BOOL bPWMOff; // for tunr off PWM, not set PWM any more
- SHARP_PREDCTI_RESERVE mSharp_PREDCTI_Reserve;
- SHARP_POSTDCTI_RESERVE mSharp_POSTDCTI_Reserve;
- SHARP_PREDLTI_RESERVE mSharp_PREDLTI_Reserve;
- SHARP_POSTDLTI_RESERVE mSharp_POSTDLTI_Reserve;
- SHARP_POST2D_RESERVE mSharp_POST2D_Reserve;
- SHARP_PEAKING_DLTI_RESERVE mSharp_Peaking_DLTI_Reserve;
- BOOL bNR_Reset_by_changeSrc;
- UINT8 bIsColorBar;
- UINT8 bNotFullScreen;
- UINT8 bIsMenuOpen;
- CSC_SETTING* RGB2YUVMatrix;
- BOOL VDIMotionStatusByMethod2;
- BOOL VDIMotionStatusByMethod3;
- BOOL bIsPureColorPattern;
- UINT8 bCVD2_NTSC_to_PAL_Patch;
- LUMA_HISTOGRAM LumaHist;
- CHROMA_HISTOGRAM ChromaHist;
- PQ_PATCH PqPatch;
- UINT8 bIsPattern_DIG_ADC2;
- UINT32 Gammatable[1024];
- BOOL bGammaChange;
- PQ_CURVE_SETTING mCurveSetting[5]; //brightness, contrast, sharpness, saturation, Hue
- }PQHW_CONTEXT;
- typedef struct _COLORLUT_VALUE_INT6
- {
- INT32 x:6;
- INT32 y:6;
- INT32 z:6;
- }COLORLUT_VALUE_INT6;
- typedef struct _COLOR_MATRIX_INT
- {
- INT32 iValue:14;
- }COLOR_MATRIX_INT;
- typedef struct _LUT_OFFSET
- {
- int Hoffset;
- int Soffset;
- int Yoffset;
- } LUT_OFFSET;
- typedef struct _COLORLUT_BUF
- {
- LUT_OFFSET lutOffset[16][11][32];
- }COLORLUT_BUF;
- void PQ_ColorLUT_SetRegion(INT32 iRegionIdx, INT32 iSatGain, INT32 iYGain, INT32 iRotAngle, INT32 iRotGain, INT32 bEnable, BOOL bSet);
- /*******************************************************************************
- * Program
- ******************************************************************************/
- //========================register read/write function========================
- UINT32 PQ_GetRegisterType(UINT32 ulRegisterType);
- void PQ_RegisterWrite(UINT32 ulRegisterName, UINT32 ulValue);
- UINT32 PQ_RegisterRead(UINT32 ulRegisterName );
- UINT8 PQ_CheckSpecialRegister(UINT32 ulReg);
- //========================pq main flow setting function========================
- //============================local func.=================================
- void PQ_ColorMatrixComp(UINT8 bReset);
- void PQ_ColorMatrixSetup(UINT8 bReset, UINT8 ucNum);
- void PQ_FleshTone_Init(void);
- void PQ_NR_Init(void);
- void PQ_SetupStrength(PQ_ITEM ucItemID, UINT8 ucDegree);
- void PQ_DigitalScanADC2Detect(void);
- UINT32 PQ_ChromaBinPercentage(UINT8 ucBin);
- void PQ_PCColorBar_SharpnessPatch(void); //eric
- void PQ_ColorBarDetect(void); //sharlene
- void PQ_AdjustNr(void);
- void PQ_LoadSettingValue(UINT8*, UINT8 ucTableIndex);
- void PQ_ColorSpaceMode(UINT8 ucMode, UINT8 ucInputSource);
- void PQ_InitVtabValue(void);
- void PQ_Sharpness_PREDCTI(BOOL bReset,UINT8 ucValue);
- void PQ_Sharpness_POSTDCTI(BOOL bReset,UINT8 ucValue);
- void PQ_Sharpness_PREDLTI(BOOL bReset, UINT8 ucValue);
- void PQ_Sharpness_POSTDLTI(BOOL bReset,UINT8 ucValue);
- void PQ_Sharpness_POST_2D(BOOL bReset,UINT8 ucValue);
- void PQ_Sharpness_Peaking_DLTI(BOOL bReset,UINT8 ucValue);
- void PQ_HorSharpness(BOOL bReset,UINT8 ucValue);
- void PQ_DSSharpness(BOOL bReset,UINT8 ucValue);
- void PQ_DPYSharpness(BOOL bReset,UINT8 ucValue);
- void PQ_CalcPivotxy(SHARP_INFO* sharp_info);
- void PQ_NRLevel(UINT32 nr_level, UINT32 vdi_total);
- void PQ_MPEGNRLevel(UINT32 nr_level, UINT32 vdi_total);
- BOOL PQ_AccessColorMatrix(UINT32 *pulData, INT32 AccessMode, UINT32 dwDataSize);
- BOOL PQ_AccessColorLUT(UINT32 *pulAddr, INT32 AcessMode, BOOL bNew, INT32 LUTBlockIndex);
- BOOL PQ_SetColorLUTStr(UINT16 *pwAddr);
- BOOL PQ_GetColorLUTStr(UINT16 *pwAddr);
- void PQ_ConditionSetting(UINT8 ucMode);
- void PQ_VDeblockFilterEnable(void);
- BOOL PQ_NtscPalDetect(void);
- void PQ_DS_Init(void);
- void PQ_DSSetting(void);
- void PQ_SLR_ColorBarDetailSet(void);
- void PQ_DeinterlaceFilter(void);
- VTAB_SRC_VALUE_DEFINE* PQ_GetSourceVTab(UINT8 ucSource, UINT8 ucSubSource);
- void PQ_DeblockFilterAndDetect(BOOL bDemoMode, UINT32 vdi_hsize_i, UINT32 vdi_vsize);
- void PQ_HmeSetup(UINT32 vdi_hsize_i, UINT32 vdi_vsize);
- void PQ_HmeControl(void);
- void PQ_HmeDeMesh(UINT8 bEnable);
- void PQ_TpwControl(void);
- void PQ_GmeSetup(void);
- void PQ_MADSetup(UINT32 vdi_hsize_i, UINT32 vdi_vsize, UINT32 vdi_total);
- void PQ_2232DetSetup(UINT32 vdi_total);
- void PQ_NERegion(BOOL bDemoMode, UINT32 vdi_hsize_i, UINT32 vdi_vsize);
- BOOL PQ_CheckTableCheckSum(UINT8*);
- void PQ_LoadSettingTable(UINT8*, UINT8 ucTableIndex);
- void PQ_RegisterWrite_user_curve(UINT32 ulRegister,UINT32 ulValue);
- UINT8 check_usr_curve_setup_ok(void);
- void PQ_GetHistBin(UINT32 *Y_Hist);
- void PQ_SetHistBinindex(UINT8 index);
- //==========================local func. end================================
- BOOL PQ_SetGammaTable(UINT32 *pulAddr);
- UINT32 PQ_LoadGammaTable(UINT32 *pulAddr);
- void PQ_SetLocationMode(UINT8 ucMode);
- void PQ_SetCurrContrastValue(INT32 iValue);
- INT32 PQ_GetCurrContrastValue(void);
- INT32 PQ_GetMenuColorBias(UINT8 index);
- BOOL PQ_GetColorProcessor(void);
- void PQ_SetupColorSpaceConversionTable(void);
- void PQ_PureColorControl(INT16 ucPure, INT8 ucPicture);
- void PQ_ColorTempBias(PQ_COLOR_TEMP_BIAS ucType, INT32 iValue);
- void PQ_SetColorMatrix(UINT8 ucEnable);
- void PQ_FilterSetup(UINT8 ucSource, UINT8 ucSubSource);
- void PQ_LowAngleSetting(void);
- void PQ_PeakingFilterSetup(void);
- void PQ_InitialTable(void);
- void PQ_DefaultSetting(void);
- void PQ_ColorProcesserDisable(void);
- void PQ_ColorProcesser(UINT8 ucEnable);
- BOOL PQ_ParsePQCmdSet(UINT32 *pulAddr);
- void PQ_GetYavg(UINT32 *Y_AVG);
- int PQ_GetYHistOverValueCount(int YValue);
- UINT8 PQ_GetAvgY_Value(void);
- void PQ_GammaCorrect(UINT8);
- void PQ_Hue(UINT8 ucIndex);
- void PQ_ColorStyleSaturation(UINT8 ucType);
- void PQ_Saturation(INT32 iValue);
- void PQ_Brightness(UINT8 bReset, INT32 iValue);
- void PQ_Sharpness(BOOL bReset,UINT8 ucValue);
- void PQ_DemoModeWidth(void);
- void PQ_Contrast(UINT8 bReset, INT32 iValue);
- void PQ_EnablePrint(UINT8 ucEnable);
- void PQ_GetVtabHwRange(UINT8 ucFunID, INT32* pMin, INT32* pMax, INT32* pMiddle);
- void PQ_GetVtabHwRangeExt(UINT8 ucFunID, INT32* pMidLeft, INT32* pMidRight);
- void PQ_VDISize(void);
- INT32 PQ_WatchDemo_Get_AvgY(void);
- void PQ_ColorTempGain(PQ_COLOR_TEMP_GAIN ucType, INT32 iValue);
- void PQ_3DNoiseReductoin(UINT8 ucMode,UINT8 iUserMin, UINT8 iUserMax);
- void PQ_Set_NR_BlockAlpha(UINT8 NRBlockAlphaType);
- void PQ_Set_NR_SLR_SNR(UINT8 ucSLR_SNR_TYPE);
- void PQ_MPEGNoiseReductoin(UINT8 ucLevel,UINT8 iUserMin, UINT8 iUserMax);
- void PQ_SetupGammaTable(UINT8 ucEnable, UINT8 ucTableIndex, UINT8 ucRGBGainAdjust);
- void PQ_DemoModeEnable(UINT8 demo_enable);
- void PQ_DPYDemoModeEnable(UINT8 demo_enable);
- void PQ_StaticGammaSetup(INT8 cOffset);
- void PQ_SetDithering(UINT8 ucStatus);
- void PQ_DitheringLevel(UINT8 ucLevel);
- void PQ_DitheringAlgo(UINT8 ucAlgo);
- void PQ_SourceSetting(UINT8 ucSource, UINT8 ucSubSource);
- void PQ_SourceSelect(UINT8 ucUserInputSource);
- void PQ_SetMenuValue(UINT8 ucFunID, INT32 iValue);
- void PQ_DPYSetup(UINT8 ucUserSource,UINT8 ucSubSource);
- void PQ_HWDestroyWorkqueue(void);
- INT32 PQ_GetMenuHueValue(void);
- UINT8 PQ_GetGammaEnableSt(void);
- void PQ_GetRegInfo(PQ_RegInfo* pRegInfo);
- //#ifdef VIP_SW_DC
- #if 1
- void PQ_GetSWDCParameter(void);
- void PQ_SW_DynamicContrast_UserCurveAdjust(void);
- void PQ_GetSWDCParamCmd(ST_SWDC_Param *param);
- void PQ_SetSWDCParamCmd(ST_SWDC_Param *param);
- void PQ_GetSWDCSlopeCmd(ST_SWDC_Slope *pstSlope);
- void PQ_SetSWDCSlopeCmd(ST_SWDC_Slope *pstSlope);
- void PQ_GetSWDCChromaCmd(ST_SWDC_Chroma*pstChroma);
- void PQ_SetSWDCChromaCmd(ST_SWDC_Chroma*pstChroma);
- void PQ_GetSWDCInfoCmd(ST_SWDC_Info *info);
- void PQ_GetSWDCSourceCmd(UINT8 *param);
- void PQ_SetSWDCSourceCmd(UINT8 *param);
- void PQ_GetDrvCurrentSourceCmd(UINT8 *param);
- void PQ_SW_DynamicContrast_UserCurveAdjust(void);
- void PQ_SW_DynamicContrast_Param(UINT8 ucSource);
- void PQ_SW_DynamicContrast_Enable(UINT8 wValue);
- void PQ_SW_DynamicContrast_Y_Level(UINT16 wValue);
- void PQ_SW_DynamicContrast_C_Level(UINT16 wValue);
- void PQ_SW_DynamicContrast_Alpha_Mode(UINT8 bMode ,UINT8 bValue);
- #endif
- UINT8 VIP_Get_PQ_Source(UINT8 ucSource, UINT8 ucSubSource);
- //330
- UINT8 PQ_Get_Source_Grouped_Index(void);
- void PQ_Default_Color_Lut_Setting(void);
- BOOL PQ_SetupLUTTable(UINT8 ucEnable);
- void PQ_SetupSaturationGainCurve(SatGainMethod opt);
- BOOL PQ_IsFadeEn(void);
- void PQ_SetFadeValue(BOOL bFadeEn, UINT8 ucStartValue, UINT8 ucEndValue, UINT8 ucIncValue);
- void PQ_SetFadeInOut(void);
- void PQ_Set_UV_Coring(void);
- void PQ_Set_UV_Offset(void);
- void PQ_regionLumaAverage(UINT8 bRegionIndex,UINT8 bTotalHnum,UINT8 bTotalVnum);
- void PQ_GetRegionLumaAverage(UINT16* bRegionYaverage);
- void PQ_SetATVStatus(BOOL bstatus);
- #ifdef DYNAMIC_BACKLIGHT
- UINT8 PQ_GETAllBlackStatus(void);
- UINT32 PQ_GetBackLight(void);
- void PQ_SetBackLight(UINT32 dwValue);
- UINT32 PQ_GetRealBackLight(void);
- void PQ_SetRealBackLight(UINT32 dwValue);
- UINT32 PQ_GetHomeModeValue(UINT32 *pValue);
- void PQ_GetLightSensorInfo(UINT8 ucLSensorEn,UINT8 ucIndex, UINT32 dwLight);
- void PQ_SetBacklightParameter(UINT8 ucTop,UINT8 ucBot,UINT8 ucTh_low,UINT8 ucTh_High);
- void PQ_LightSensorChange(void);
- void PQ_InitDynamicBackLight(void);
- void PQ_DynamicBackLightAP(UINT8 ucLevel, UINT32 dwMap);
- void PQ_EnableDynamicBackLight(UINT8 ucLevel, UINT32 dwLightUser);
- UINT32 PQ_BackLightTarget(UINT8 nDBLStatus, UINT8 nWhiteCondition, UINT32 dwCur);
- BOOL PQ_ColorSearchAutoDet(UINT8 ucPath, UINT8 ucColorType ,UINT32 *pulMaxValue, UINT32*pulMinValue);
- UINT8 PQ_AllBlackDetect(void);
- void PQ_LEDBackLightDetect(BOOL bReset);
- void PQ_FormalBackLightDetect(BOOL bReset);
- UINT32 PQ_EEBackLightTarget(UINT8 nDBLStatus, UINT32 dwWhiteLevel, UINT32 dwCur);
- void PQ_EEBackLightDetect(BOOL bReset);
- void PQ_PresetContrast(BOOL bReset, INT32 iValue, INT32 nSpeed);
- void PQ_PresetBackLight(BOOL bReset, UINT32 dwLightTarget, INT32 nSpeed);
- void PQ_SISPresetContrast(UINT8 ucValue, INT32 nSpeed);
- void PQ_SetDynamicBacklightMode(UINT8 ucMode);
- void PQ_SetBacklightLevel(UINT8 ucLevel);
- void PQ_SetBacklightHistMin(UINT8 ucValue);
- void PQ_SetDynamicBLType(UINT8 ucType);
- UINT8 PQ_GetDynamicBLType(void);
- UINT8 PQ_GetOrderedBackLight(UINT32 *pLight);
- void PQ_SetMaxPWM(UINT32 ucValue);
- void PQ_FlDetLevel(UINT8 ucLevel);
- UINT8 PQ_GetDefinitionIndex(void);
- #endif
- void PQ_HW_Initial(void);
- UINT8 _VIP_InputWidthEnlargeRate(void);
- void PQ_SigmaNR(BOOL bReset, UINT8 ucLevel,UINT8 iUserMin, UINT8 iUserMax );
- UINT32 PQ_Get_VDI_VSize(void);
- void PQ_GetRGBGainAdjustModuleCmd(UINT8 *param);
- void PQ_GetRGBGainParamCmd(RGB_GAIN *param);
- void PQ_MbwCtl(BOOL bReset,UINT8 ucValue);
- void PQ_ChromaMotionDetectControl(void);
- /**
- * @brief Check current CVD2 signal if stand or non-standard
- *
- * This function check if current input CVD2 signal is standard or non-standard
- *
- * @param n/a
- * @return TRUE : non-standard signal, FALSE : standard signal
- */
- BOOL PQ_CheckCvd2NonSTDStatus(void);
- /**
- * @brief check current frame is motion frame or static frame
- *
- * This function check VDI statistical data to define current frame is motion frame or static frame
- *
- * @param reset, 1 is reset the static parameter, 0 is do the regular frame difference statistic
- * @return n/a
- */
- void PQ_CheckMotionStatusMethod2(BOOL reset);
- /**
- * @brief get the status of current frame, to verify current frame is motion frame or static frame
- *
- * This function get the status of current frame is motion frame or static frame
- *
- * @param n/a
- * @return 1 : motion frmae, 0 : static frame
- */
- BOOL PQ_GetMotionStatusByMethod2(void);
- /**
- * @brief check current frame is motion frame or static frame
- *
- * This function check VDI statistical data to define current frame is motion frame or static frame
- *
- * @param reset, 1 is reset the static parameter, 0 is do the regular frame difference statistic
- * @return n/a
- */
- void PQ_CheckMotionStatusMethod3(BOOL reset);
- /**
- * @brief get the status of current frame, to verify current frame is motion frame or static frame
- *
- * This function get the status of current frame is motion frame or static frame
- *
- * @param n/a
- * @return 1 : motion frmae, 0 : static frame
- */
- BOOL PQ_GetMotionStatusByMethod3(void);
- #endif //#ifndef _PQ_HW_H
|