📄 color.c
字号:
#ifndef _COLOR_C_
#define _COLOR_C_
#include "board.h"
#include "Datatype.h"
#include "drvMode.h"
#include "msAPI_ACE.h"
#include "msAPI_Scaler.h"
#include "msAPI_Scaler.h"
#include "Analog_Reg.h"
// seven 070822_01
#if (PANEL_TYPE_SEL == Pnl_AU07_AT)
#include "color_AU07_AT.C"
#elif (PANEL_TYPE_SEL==Pnl_CPT07_AT)
#include "color_CPT07_AT.C"
#elif (PANEL_TYPE_SEL == Pnl_CPT07_DT)
#include "color_CPT07_DT.c"
#elif (PANEL_TYPE_SEL == Pnl_TMD07_DT)
#include "color_TMD07_DT.c"
#else
#include "color_default.c"
#endif
//******************************************************************************
// Function name: msAPI_ACE_ColorCtrl
// Passing parameter: none
// U8 enInputSrcType
// Return parameter: BOOLEAN type: 0 for RGB, 1 for YUV
// Description: This function will set different color setting for RGB or YUV
//******************************************************************************
void msAPI_ACE_ColorCtrl ( MS_INPUT_SOURCE_TYPE enInputSourceType, BOOLEAN bIsHDTV )
{
MS_REG_TYPE* pCombTbl = NULL;
MS_REG16_TYPE* pSNRTbl = NULL;
MS_REG16_TYPE* pDeBlockingTbl = NULL;
MS_REG16_TYPE* pVPeakingTbl = NULL;
MS_REG16_TYPE* pPostScalingTbl = NULL;
MS_REG16_TYPE* pHPeakingTbl = NULL;
MS_REG16_TYPE* pYAdjustTbl = NULL;
MS_REG16_TYPE* pFCCTbl = NULL;
MS_REG16_TYPE* pICCTbl = NULL;
MS_REG16_TYPE* pIBCTbl = NULL;
MS_REG16_TYPE *pNoiseMaskTbl = NULL;
MS_REG16_TYPE* pIHCTbl = NULL;
MS_REG16_TYPE* pBLEWLETbl = NULL;
MS_REG16_TYPE* pYCGainTbl = NULL;
MS_REG16_TYPE* pYCCoringTbl = NULL;
MS_REG16_TYPE* pShinnyTbl = NULL;
U8 u8Bank;
u8Bank = MDrv_ReadByte(BK_SELECT_00);
if (IsSrcTypeDTV(enInputSourceType))
{
if (bIsHDTV)
{
/* DTV - HD */
pCombTbl = &g_ACE_COMB_DEFAULT_TBL;
pDeBlockingTbl = &g_ACE_DeBlocking_HD_TBL;
pSNRTbl = &g_ACE_SNR_HD_TBL;
pVPeakingTbl = &g_ACE_VPeaking_HD_TBL;
pPostScalingTbl = &g_ACE_PostScaling_HD_TBL;
pHPeakingTbl = &g_ACE_HPeaking_HD_TBL;
pYAdjustTbl = &g_ACE_YAdjust_HD_TBL;
pFCCTbl = &g_ACE_FCC_HD_TBL;
pICCTbl = &g_ACE_ICC_HD_TBL;
pIBCTbl = &g_ACE_IBC_HD_TBL;
pNoiseMaskTbl = &g_ACE_NoiseMask_HD_TBL;
pIHCTbl = &g_ACE_IHC_HD_TBL;
pBLEWLETbl = &g_ACE_BLEWLE_HD_TBL;
pYCGainTbl = &g_ACE_YCGain_HD_TBL;
pYCCoringTbl = &g_ACE_YCCoring_HD_TBL;
pShinnyTbl = &g_ACE_Shinny_HD_TBL;
}
else
{
/* DTV - SD */
pCombTbl = &g_ACE_COMB_DEFAULT_TBL;
pSNRTbl = &g_ACE_SNR_SD_TBL;
pDeBlockingTbl = &g_ACE_DeBlocking_SD_TBL;
pVPeakingTbl = &g_ACE_VPeaking_SD_TBL;
pPostScalingTbl = &g_ACE_PostScaling_SD_TBL;
pHPeakingTbl = &g_ACE_HPeaking_SD_TBL;
pYAdjustTbl = &g_ACE_YAdjust_SD_TBL;
pFCCTbl = &g_ACE_FCC_SD_TBL;
pICCTbl = &g_ACE_ICC_SD_TBL;
pIBCTbl = &g_ACE_IBC_SD_TBL;
pNoiseMaskTbl = &g_ACE_NoiseMask_SD_TBL;
pIHCTbl = &g_ACE_IHC_SD_TBL;
pBLEWLETbl = &g_ACE_BLEWLE_SD_TBL;
pYCGainTbl = &g_ACE_YCGain_SD_TBL;
pYCCoringTbl = &g_ACE_YCCoring_SD_TBL;
pShinnyTbl = &g_ACE_Shinny_SD_TBL;
}
}
else if (IsSrcTypeATV(enInputSourceType))
{
#if (COLOR_REGISTER_VERSION < COLOR_REGISTER_VER_02)
pCombTbl = &g_ACE_COMB_ATV_TBL;
pSNRTbl = &g_ACE_SNR_ATV_TBL;
pDeBlockingTbl = &g_ACE_DeBlocking_DEFAULT_TBL;
pVPeakingTbl = &g_ACE_VPeaking_ATV_TBL;
pPostScalingTbl = &g_ACE_PostScaling_ATV_TBL;
pHPeakingTbl = &g_ACE_HPeaking_ATV_TBL;
pYAdjustTbl = &g_ACE_YAdjust_ATV_TBL;
pFCCTbl = &g_ACE_FCC_ATV_TBL;
pICCTbl = &g_ACE_ICC_ATV_TBL;
pIBCTbl = &g_ACE_IBC_ATV_TBL;
pNoiseMaskTbl = &g_ACE_NoiseMask_ATV_TBL;
pIHCTbl = &g_ACE_IHC_ATV_TBL;
pBLEWLETbl = &g_ACE_BLEWLE_ATV_TBL;
pYCGainTbl = &g_ACE_YCGain_ATV_TBL;
pYCCoringTbl = &g_ACE_YCCoring_ATV_TBL;
pShinnyTbl = &g_ACE_Shinny_ATV_TBL;
#else
pCombTbl = &g_ACE_COMB_ATV_NTSC_TBL;
pSNRTbl = &g_ACE_SNR_ATV_NTSC_TBL;
pDeBlockingTbl = &g_ACE_DeBlocking_DEFAULT_TBL;
pVPeakingTbl = &g_ACE_VPeaking_ATV_NTSC_TBL;
pPostScalingTbl = &g_ACE_PostScaling_ATV_NTSC_TBL;
pHPeakingTbl = &g_ACE_HPeaking_ATV_NTSC_TBL;
pYAdjustTbl = &g_ACE_YAdjust_ATV_NTSC_TBL;
pFCCTbl = &g_ACE_FCC_ATV_NTSC_TBL;
pICCTbl = &g_ACE_ICC_ATV_NTSC_TBL;
pIBCTbl = &g_ACE_IBC_ATV_NTSC_TBL;
pNoiseMaskTbl = &g_ACE_NoiseMask_ATV_NTSC_TBL;
pIHCTbl = &g_ACE_IHC_ATV_NTSC_TBL;
pBLEWLETbl = &g_ACE_BLEWLE_ATV_NTSC_TBL;
pYCGainTbl = &g_ACE_YCGain_ATV_NTSC_TBL;
pYCCoringTbl = &g_ACE_YCCoring_ATV_NTSC_TBL;
pShinnyTbl = &g_ACE_Shinny_ATV_NTSC_TBL;
#endif
}
else if (IsSrcTypeAV(enInputSourceType))
{
#if (COLOR_REGISTER_VERSION < COLOR_REGISTER_VER_02)
pCombTbl = &g_ACE_COMB_AV_TBL;
pSNRTbl = &g_ACE_SNR_AV_TBL;
pDeBlockingTbl = &g_ACE_DeBlocking_DEFAULT_TBL;
pVPeakingTbl = &g_ACE_VPeaking_AV_TBL;
pPostScalingTbl = &g_ACE_PostScaling_AV_TBL;
pHPeakingTbl = &g_ACE_HPeaking_AV_TBL;
pYAdjustTbl = &g_ACE_YAdjust_AV_TBL;
pFCCTbl = &g_ACE_FCC_AV_TBL;
pICCTbl = &g_ACE_ICC_AV_TBL;
pIBCTbl = &g_ACE_IBC_AV_TBL;
pNoiseMaskTbl = &g_ACE_NoiseMask_AV_TBL;
pIHCTbl = &g_ACE_IHC_AV_TBL;
pBLEWLETbl = &g_ACE_BLEWLE_AV_TBL;
pYCGainTbl = &g_ACE_YCGain_AV_TBL;
pYCCoringTbl = &g_ACE_YCCoring_AV_TBL;
pShinnyTbl = &g_ACE_Shinny_AV_TBL;
#else
pCombTbl = &g_ACE_COMB_AV_NTSC_TBL;
pSNRTbl = &g_ACE_SNR_AV_NTSC_TBL;
pDeBlockingTbl = &g_ACE_DeBlocking_DEFAULT_TBL;
pVPeakingTbl = &g_ACE_VPeaking_AV_NTSC_TBL;
pPostScalingTbl = &g_ACE_PostScaling_AV_NTSC_TBL;
pHPeakingTbl = &g_ACE_HPeaking_AV_NTSC_TBL;
pYAdjustTbl = &g_ACE_YAdjust_AV_NTSC_TBL;
pFCCTbl = &g_ACE_FCC_AV_NTSC_TBL;
pICCTbl = &g_ACE_ICC_AV_NTSC_TBL;
pIBCTbl = &g_ACE_IBC_AV_NTSC_TBL;
pIHCTbl = &g_ACE_IHC_AV_NTSC_TBL;
pNoiseMaskTbl = &g_ACE_NoiseMask_AV_NTSC_TBL;
pBLEWLETbl = &g_ACE_BLEWLE_AV_NTSC_TBL;
pYCGainTbl = &g_ACE_YCGain_AV_NTSC_TBL;
pYCCoringTbl = &g_ACE_YCCoring_AV_NTSC_TBL;
pShinnyTbl = &g_ACE_Shinny_AV_NTSC_TBL;
#endif
}
else if (IsSrcTypeSV(enInputSourceType))
{
#if (COLOR_REGISTER_VERSION < COLOR_REGISTER_VER_02)
pCombTbl = &g_ACE_COMB_SV_TBL;
pSNRTbl = &g_ACE_SNR_SV_TBL;
pDeBlockingTbl = &g_ACE_DeBlocking_DEFAULT_TBL;
pVPeakingTbl = &g_ACE_VPeaking_SV_TBL;
pPostScalingTbl = &g_ACE_PostScaling_SV_TBL;
pHPeakingTbl = &g_ACE_HPeaking_SV_TBL;
pYAdjustTbl = &g_ACE_YAdjust_SV_TBL;
pFCCTbl = &g_ACE_FCC_SV_TBL;
pICCTbl = &g_ACE_ICC_SV_TBL;
pIBCTbl = &g_ACE_IBC_SV_TBL;
pNoiseMaskTbl = &g_ACE_NoiseMask_SV_TBL;
pIHCTbl = &g_ACE_IHC_SV_TBL;
pBLEWLETbl = &g_ACE_BLEWLE_SV_TBL;
pYCGainTbl = &g_ACE_YCGain_SV_TBL;
pYCCoringTbl = &g_ACE_YCCoring_SV_TBL;
pShinnyTbl = &g_ACE_Shinny_SV_TBL;
#else
pCombTbl = &g_ACE_COMB_SV_NTSC_TBL;
pSNRTbl = &g_ACE_SNR_SV_NTSC_TBL;
pDeBlockingTbl = &g_ACE_DeBlocking_DEFAULT_TBL;
pVPeakingTbl = &g_ACE_VPeaking_SV_NTSC_TBL;
pPostScalingTbl = &g_ACE_PostScaling_SV_NTSC_TBL;
pHPeakingTbl = &g_ACE_HPeaking_SV_NTSC_TBL;
pYAdjustTbl = &g_ACE_YAdjust_SV_NTSC_TBL;
pFCCTbl = &g_ACE_FCC_SV_NTSC_TBL;
pICCTbl = &g_ACE_ICC_SV_NTSC_TBL;
pIBCTbl = &g_ACE_IBC_SV_NTSC_TBL;
pNoiseMaskTbl = &g_ACE_NoiseMask_SV_NTSC_TBL;
pIHCTbl = &g_ACE_IHC_SV_NTSC_TBL;
pBLEWLETbl = &g_ACE_BLEWLE_SV_NTSC_TBL;
pYCGainTbl = &g_ACE_YCGain_SV_NTSC_TBL;
pYCCoringTbl = &g_ACE_YCCoring_SV_NTSC_TBL;
pShinnyTbl = &g_ACE_Shinny_SV_NTSC_TBL;
#endif
}
else if (IsSrcTypeYPbPr(enInputSourceType))
{
pCombTbl = &g_ACE_COMB_DEFAULT_TBL;
pDeBlockingTbl = &g_ACE_DeBlocking_DEFAULT_TBL;
if (bIsHDTV)
{
pSNRTbl = &g_ACE_SNR_YPBPR_HD_TBL;
pVPeakingTbl = &g_ACE_VPeaking_YPBPR_HD_TBL;
pHPeakingTbl = &g_ACE_HPeaking_YPBPR_HD_TBL;
pYAdjustTbl = &g_ACE_YAdjust_YPBPR_HD_TBL;
pFCCTbl = &g_ACE_FCC_YPBPR_HD_TBL;
pICCTbl = &g_ACE_ICC_YPBPR_HD_TBL;
pIBCTbl = &g_ACE_IBC_YPBPR_HD_TBL;
pNoiseMaskTbl = &g_ACE_NoiseMask_YPBPR_HD_TBL;
pIHCTbl = &g_ACE_IHC_YPBPR_HD_TBL;
pBLEWLETbl = &g_ACE_BLEWLE_YPBPR_HD_TBL;
pYCGainTbl = &g_ACE_YCGain_YPBPR_HD_TBL;
pYCCoringTbl = &g_ACE_YCCoring_YPBPR_HD_TBL;
pShinnyTbl = &g_ACE_Shinny_YPBPR_HD_TBL;
#if (COLOR_REGISTER_VERSION < COLOR_REGISTER_VER_02)
pPostScalingTbl = &g_ACE_PostScaling_YPBPR_HD_TBL;
#else
if (g_PcadcModeSetting.u8ModeIndex <= MD_1280x720_60P)
{
//printf("===> ACE - Componet - 720p\n");
pPostScalingTbl = &g_ACE_PostScaling_720p_YPBPR_HD_TBL;
}
else
{
//printf("===> ACE - Componet - 1080\n");
pPostScalingTbl = &g_ACE_PostScaling_1080_YPBPR_HD_TBL;
}
#endif
}
else
{
pSNRTbl = &g_ACE_SNR_YPBPR_SD_TBL;
pVPeakingTbl = &g_ACE_VPeaking_YPBPR_SD_TBL;
pPostScalingTbl = &g_ACE_PostScaling_YPBPR_SD_TBL;
pHPeakingTbl = &g_ACE_HPeaking_YPBPR_SD_TBL;
pYAdjustTbl = &g_ACE_YAdjust_YPBPR_SD_TBL;
pFCCTbl = &g_ACE_FCC_YPBPR_SD_TBL;
pICCTbl = &g_ACE_ICC_YPBPR_SD_TBL;
pIBCTbl = &g_ACE_IBC_YPBPR_SD_TBL;
pNoiseMaskTbl = &g_ACE_NoiseMask_YPBPR_SD_TBL;
pIHCTbl = &g_ACE_IHC_YPBPR_SD_TBL;
pBLEWLETbl = &g_ACE_BLEWLE_YPBPR_SD_TBL;
pYCGainTbl = &g_ACE_YCGain_YPBPR_SD_TBL;
pYCCoringTbl = &g_ACE_YCCoring_YPBPR_SD_TBL;
pShinnyTbl = &g_ACE_Shinny_YPBPR_SD_TBL;
}
}
#if (ENABLE_HDMI)
else if(msAPI_Scaler_Get_Hdmi_Dvi() == E_HDMI_STATUS_HDMI)
{
pCombTbl = &g_ACE_COMB_DEFAULT_TBL;
pDeBlockingTbl = &g_ACE_DeBlocking_DEFAULT_TBL;
if (bIsHDTV)
{
pSNRTbl = &g_ACE_SNR_HDMI_HD_TBL;
pVPeakingTbl = &g_ACE_VPeaking_HDMI_HD_TBL;
pPostScalingTbl = &g_ACE_PostScaling_HDMI_HD_TBL;
pHPeakingTbl = &g_ACE_HPeaking_HDMI_HD_TBL;
pYAdjustTbl = &g_ACE_YAdjust_HDMI_HD_TBL;
pFCCTbl = &g_ACE_FCC_HDMI_HD_TBL;
pICCTbl = &g_ACE_ICC_HDMI_HD_TBL;
pIBCTbl = &g_ACE_IBC_HDMI_HD_TBL;
pNoiseMaskTbl = &g_ACE_NoiseMask_HDMI_HD_TBL;
pIHCTbl = &g_ACE_IHC_HDMI_HD_TBL;
pBLEWLETbl = &g_ACE_BLEWLE_HDMI_HD_TBL;
pYCGainTbl = &g_ACE_YCGain_HDMI_HD_TBL;
pYCCoringTbl = &g_ACE_YCCoring_HDMI_HD_TBL;
pShinnyTbl = &g_ACE_Shinny_HDMI_HD_TBL;
}
else
{
pSNRTbl = &g_ACE_SNR_HDMI_SD_TBL;
pVPeakingTbl = &g_ACE_VPeaking_HDMI_SD_TBL;
pPostScalingTbl = &g_ACE_PostScaling_HDMI_SD_TBL;
pHPeakingTbl = &g_ACE_HPeaking_HDMI_SD_TBL;
pYAdjustTbl = &g_ACE_YAdjust_HDMI_SD_TBL;
pFCCTbl = &g_ACE_FCC_HDMI_SD_TBL;
pICCTbl = &g_ACE_ICC_HDMI_SD_TBL;
pIBCTbl = &g_ACE_IBC_HDMI_SD_TBL;
pNoiseMaskTbl = &g_ACE_NoiseMask_HDMI_SD_TBL;
pIHCTbl = &g_ACE_IHC_HDMI_SD_TBL;
pBLEWLETbl = &g_ACE_BLEWLE_HDMI_SD_TBL;
pYCGainTbl = &g_ACE_YCGain_HDMI_SD_TBL;
pYCCoringTbl = &g_ACE_YCCoring_HDMI_SD_TBL;
pShinnyTbl = &g_ACE_Shinny_HDMI_SD_TBL;
}
}
#endif
else /* VGA & DVI */
{
pCombTbl = &g_ACE_COMB_DEFAULT_TBL;
pSNRTbl = &g_ACE_SNR_VGA_TBL;
pDeBlockingTbl = &g_ACE_DeBlocking_DEFAULT_TBL;
pVPeakingTbl = &g_ACE_VPeaking_VGA_TBL;
pPostScalingTbl = &g_ACE_PostScaling_VGA_TBL;
pHPeakingTbl = &g_ACE_HPeaking_VGA_TBL;
pYAdjustTbl = &g_ACE_YAdjust_VGA_TBL;
pFCCTbl = &g_ACE_FCC_VGA_TBL;
pICCTbl = &g_ACE_ICC_VGA_TBL;
pIBCTbl = &g_ACE_IBC_VGA_TBL;
pNoiseMaskTbl = &g_ACE_NoiseMask_VGA_TBL;
pIHCTbl = &g_ACE_IHC_VGA_TBL;
pBLEWLETbl = &g_ACE_BLEWLE_VGA_TBL;
pYCGainTbl = &g_ACE_YCGain_VGA_TBL;
pYCCoringTbl = &g_ACE_YCCoring_VGA_TBL;
pShinnyTbl = &g_ACE_Shinny_VGA_TBL;
}
msAPI_ACE_SetTable(ACE_COMB_TABLE, (MS_REG16_TYPE*)pCombTbl);
msAPI_ACE_SetTable(ACE_SNR_TABLE, pSNRTbl);
msAPI_ACE_SetTable(ACE_DEBLOCKING_TABLE, pDeBlockingTbl);
msAPI_ACE_SetTable(ACE_VPEAKING_TABLE, pVPeakingTbl);
msAPI_ACE_SetTable(ACE_POSTSCALING_TABLE, pPostScalingTbl);
msAPI_ACE_SetTable(ACE_HPEAKING_TABLE, pHPeakingTbl);
msAPI_ACE_SetTable(ACE_YADJUST_TABLE, pYAdjustTbl);
msAPI_ACE_SetTable(ACE_FCC_TABLE, pFCCTbl);
msAPI_ACE_SetTable(ACE_ICC_TABLE, pICCTbl);
msAPI_ACE_SetTable(ACE_IBC_TABLE, pIBCTbl);
msAPI_ACE_SetTable(ACE_NOISEMASK_TABLE, pNoiseMaskTbl);
msAPI_ACE_SetTable(ACE_IHC_TABLE, pIHCTbl);
msAPI_ACE_SetTable(ACE_BLEWLE_TABLE, pBLEWLETbl);
msAPI_ACE_SetTable(ACE_YCGAIN_TABLE, pYCGainTbl);
msAPI_ACE_SetTable(ACE_YCCORING_TABLE, pYCCoringTbl);
msAPI_ACE_SetTable(ACE_SHINNY_TABLE, pShinnyTbl);
MDrv_WriteByte(BK_SELECT_00, u8Bank);
}
#endif /* _COLOR_C_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -