📄 mode.h
字号:
//----------------------------------------------------------------------------------------------------
// ID Code : Mode.h No.0001
// Update Note :
//
//----------------------------------------------------------------------------------------------------
//--------------------------------------------------
// Definitions of
//--------------------------------------------------
//----------------------------------------------------------------------------------------------------
#ifdef __MODE__
//RGB -> YUV
//RGB Source(OnSource601rgb)
//REG 9C=0x11
//m_M11 = +0.2990 ; m_M21 = -0.1687 ; m_M31 = +0.5000 ;
//m_M12 = +0.5870 ; m_M22 = -0.3313 ; m_M32 = -0.4187 ;
//m_M13 = +0.1140 ; m_M23 = +0.5000 ; m_M33 = -0.0813 ;
//M11 = 0x01,0x32 //M12 = 0x02,0x59 //M13 = 0x00,0x74
//M21 = 0xFF,0x54 //M22 = 0xFE,0xAD //M23 = 0x02,0x00
//M31 = 0x02,0x00 //M32 = 0xFE,0x54 //M33 = 0xFF,0xAD
BYTE code tRGB2YUV601_TABLE_FOR_RGB_SOURCE[] =
{
4, _NON_AUTOINC, _YUV2RGB_CTRL_9C, 0x00, //reset data port addr to 0.
4, _NON_AUTOINC, _YUV2RGB_CTRL_9C, 0x08, //enable YVU/RGB coeff access
21, _NON_AUTOINC, _YUV_RGB_COEF_DATA_9D, 0x01,0x32,0x02,0x59,0x00,0x74,
0xFF,0x54,0xFE,0xAD,0x02,0x00,
0x02,0x00,0xFE,0x54,0xFF,0xAD,
4, _NON_AUTOINC, _YUV2RGB_CTRL_9C, 0x11, //RGB->YUV & enable
_END
};
//RGB Source(OnSource709rgb)
//REG 9C=0x11
//m_M11 = 0.2974; m_M21 = -0.1690; m_M31 = 0.5000 ;
//m_M12 = 0.5897; m_M22 = -0.3310; m_M32 = -0.4188;
//m_M13 = 0.1129; m_M23 = 0.5000; m_M33 = -0.0812;
//M11 = 0x01,0x30 //M12 = 0x02,0x5B //M13 = 0x00,0x73
//M21 = 0xFF,0x53 //M22 = 0xFE,0xAE //M23 = 0x01,0xFF
//M31 = 0x02,0x00 //M32 = 0xFE,0x54 //M33 = 0xFF,0xAD
BYTE code tRGB2YUV709_TABLE_FOR_RGB_SOURCE[] =
{
4, _NON_AUTOINC, _YUV2RGB_CTRL_9C, 0x00, //reset data port addr to 0.
4, _NON_AUTOINC, _YUV2RGB_CTRL_9C, 0x08, //enable YVU/RGB coeff access
21, _NON_AUTOINC, _YUV_RGB_COEF_DATA_9D, 0x01,0x30,0x02,0x5B,0x00,0x73,
0xFF,0x53,0xFE,0xAE,0x01,0xFF,
0x02,0x00,0xFE,0x54,0xFF,0xAD,
4, _NON_AUTOINC, _YUV2RGB_CTRL_9C, 0x11, //RGB->YUV & enable
_END
};
//!RGB Source(OnSource601rgb)
//REG 9C = 0x00
BYTE code tRGB2YUV601_TABLE_FOR_NON_RGB_SOURCE[] =
{
4, _NON_AUTOINC, _YUV2RGB_CTRL_9C, 0x00, //disable RGB->YUV conv
_END
};
//!RGB Source(OnSource709rgb)
//REG 9C = 0x00
BYTE code tRGB2YUV709_TABLE_FOR_NON_RGB_SOURCE[] =
{
4, _NON_AUTOINC, _YUV2RGB_CTRL_9C, 0x00, //disable RGB->YUV conv
_END
};
//YUV->RGB
//VGA source
//page7 0xc0(2) = 0 & 0xc0(3) = 1
//for 601:
//0x04, 0x00, // k11
//0x05, 0x9B, // k13
//0x01, 0x60, // k22
//0x02, 0xDB, // k23
//0x07, 0x16, // k32
//0x00, 0x00, // R-offset
//0x00, 0x00, // G-offset
//0x00, 0x00, // B-offset
BYTE code tYUV2RGB601_TABLE_FOR_RGB_SOURCE[] =
{
4, _NON_AUTOINC, _PAGE_SELECT_9F, _PAGE7,
4, _NON_AUTOINC, _P7_YUV2RGB_CTRL_BF, 0x02, //enable YUV->RGB coeff access
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x0C,0x04, //K11 MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x1C,0x00, //K11 LSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x2C,0x05, //K13 MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x3C,0x9B, //K13 LSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x4C,0x01, //K22 MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x5C,0x60, //K22 LSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x6C,0x02, //K23 MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x7C,0xDB, //K23 LSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x8C,0x07, //K32 MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x9C,0x16, //K32 LSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0xAC,0x00, //ROffset MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0xBC,0x00, //ROffset LSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0xCC,0x00, //GOffset MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0xDC,0x00, //GOffset LSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0xEC,0x00, //BOffset MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0xFC,0x00, //GOffset LSB
4, _NON_AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x08,
4, _NON_AUTOINC, _P7_YUV2RGB_CTRL_BF, 0x01, //enable YUV->RGB conv
_END
};
//!VGA source
//page7 0xc0(2) = 1 & 0xc0(3) = 1
//for 601:
//0x04, 0xA7, // k11
//0x05, 0x9B, // k13
//0x01, 0x60, // k22
//0x02, 0xDB, // k23
//0x07, 0x16, // k32
//0x00, 0x00, // R-offset
//0x00, 0x00, // G-offset
//0x00, 0x00, // B-offset
BYTE code tYUV2RGB601_TABLE_FOR_NON_RGB_SOURCE[] =
{
4, _NON_AUTOINC, _PAGE_SELECT_9F, _PAGE7,
4, _NON_AUTOINC, _P7_YUV2RGB_CTRL_BF, 0x02, //enable YUV->RGB coeff access
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x0C,0x04, //K11 MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x1C,0xA7, //K11 LSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x2C,0x05, //K13 MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x3C,0x9B, //K13 LSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x4C,0x01, //K22 MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x5C,0x60, //K22 LSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x6C,0x02, //K23 MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x7C,0xDB, //K23 LSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x8C,0x07, //K32 MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x9C,0x16, //K32 LSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0xAC,0x00, //ROffset MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0xBC,0x00, //ROffset LSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0xCC,0x00, //GOffset MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0xDC,0x00, //GOffset LSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0xEC,0x00, //BOffset MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0xFC,0x00, //GOffset LSB
4, _NON_AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x0C,
4, _NON_AUTOINC, _P7_YUV2RGB_CTRL_BF, 0x01, //enable YUV->RGB conv
_END
};
//!VGA source
//page7 0xc0(2) = 1 & 0xc0(3) = 1
//for 709:
//0x04, 0xA7, // k11
//0x06, 0x4C, // k13
//0x00, 0xBF, // k22
//0x01, 0xDF, // k23
//0x07, 0x6C, // k32
//0x00, 0x00, // R-offset
//0x00, 0x00, // G-offset
//0x00, 0x00, // B-offset
BYTE code tYUV2RGB709_TABLE_FOR_NON_RGB_SOURCE[] =
{
4, _NON_AUTOINC, _PAGE_SELECT_9F, _PAGE7,
4, _NON_AUTOINC, _P7_YUV2RGB_CTRL_BF, 0x02, //enable YUV->RGB coeff access
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x0C,0x04, //K11 MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x1C,0xA7, //K11 LSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x2C,0x06, //K13 MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x3C,0x4C, //K13 LSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x4C,0x00, //K22 MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x5C,0xBF, //K22 LSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x6C,0x01, //K23 MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x7C,0xDF, //K23 LSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x8C,0x07, //K32 MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x9C,0x6C, //K32 LSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0xAC,0x00, //ROffset MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0xBC,0x00, //ROffset LSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0xCC,0x00, //GOffset MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0xDC,0x00, //GOffset LSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0xEC,0x00, //BOffset MSB
5, _AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0xFC,0x00, //GOffset LSB
4, _NON_AUTOINC, _P7_YUV2RGB_ACCESS_C0, 0x0C,
4, _NON_AUTOINC, _P7_YUV2RGB_CTRL_BF, 0x01, //enable YUV->RGB conv
_END
};
//--------------------------------------------------
// Global Variables
//--------------------------------------------------
BYTE idata ucCurrState = _PWOFF_STATE;
BYTE idata ucModeControl = 0;
BYTE idata ucEvent0 = 255;
BYTE idata ucEvent1 = 255;
BYTE idata ucModeFound;
BYTE idata ucHStartBias;
BYTE idata ucVStartBias;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -