⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 color.c

📁 mstar 776 开发的车载dvd
💻 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 + -