📄 yuv.h
字号:
/* **********************************************************************
Copyright (c) 2002-2006 Beyond Innovation Technology Co., Ltd
All rights are reserved. Reproduction in whole or in parts is
prohibited without the prior written consent of the copyright owner.
----------------------------------------------------------------------
Module: YUV.H - Video Decoder.
Purpose: Interface of YUV module.
Version: 0.01 10:44AM 2005/11/18
Compiler: Keil 8051 C Compiler v8.01
Reference:
[1] BIT1611B Data Sheet Version 1.0, 2005-11-10,
Beyond Innovation Technology
----------------------------------------------------------------------
Modification:
R0.01 10:44AM 2005/11/18 Jeffrey Chang
Reason:
1. Original.
Solution:
********************************************************************** */
#ifndef _YUV_H_
#define _YUV_H_
/* ------------------------------------
Header Files
------------------------------------ */
#include "platform.h"
/* ------------------------------------
Macro Definitions
------------------------------------ */
#undef EXTERN
#ifdef _YUV_C_
#define EXTERN
#else
#define EXTERN extern
#endif
/* ::::::::::::::::::::::::::::::::::::
VD ADC mode
:::::::::::::::::::::::::::::::::::: */
#define YUV_ADC_8BITS 0
#define YUV_ADC_10BITS 1
#define YUV_ADC_CFG YUV_ADC_10BITS
/* ::::::::::::::::::::::::::::::::::::
[3]131,121 Video Colour Standard
:::::::::::::::::::::::::::::::::::: */
// CSTD= 0x642[2:0]
// FIDT= 0x642[3]
// F= Subcarrier frequency
// CSTD FIDT F
#define YUV_CS_PAL 0x00 // 000 0 4.43361875MHz PAL B/G/H/D/K/I
#define YUV_CS_PAL_N 0x01 // 001 0 4.43361875MHz PAL-N
#define YUV_CS_SECAM 0x02 // 010 0 4.43361875MHz SECAM
#define YUV_CS_PAL_M 0x03 // 011 1 3.575611MHz PAL-M
#define YUV_CS_NTSC_443_50 0x04 // 100 0 4.43361875MHz NTSC 4.43 50Hz
#define YUV_CS_NTSC_M 0x05 // 101 1 3.579545MHz NTSC-M/NTSC-Japan
#define YUV_CS_NTSC_443_60 0x06 // 110 1 4.43361875MHz NTSC 4.43 60Hz (DVD PAL-60)
#define YUV_CS_BW 0x07 // 111 0/1 Black-White (No color burst)
#define YUV_CS_PAL_60 0x08 // 000 1 4.43361875MHz PAL-60
#define YUV_CS_SEMI_AUTO 0x09 // SEMI-AUTO
#define YUV_CS_AUTO 0x0A // AUTO (PAL B/G/H/D/K/I + NTSC/M)
#define YUV_CS_SIZE (YUV_CS_AUTO + 1)
#define YUV_CS_480I 0x0B // 480i
#define YUV_CS_576I 0x0C // 576i
#define YUV_CS_480P 0x0D // 480p
#define YUV_CS_576P 0x0E // 576p
#define YUV_CS_480X234_50 0x0F // (480 x 234 @50) ??.???MHz
#define YUV_CS_480X234_60 0x10 // (480 x 234 @60) ??.???MHz
#define YUV_CS_NONE 0x10
#define YUV_CS_NTSC 0x11
#define YUV_CS_BITEK 0x12
#define YUV_CS_RGB565 0x13
#define YUV_CS_MODE_DEFAULT YUV_CS_NTSC // Default YUV Color Standard Mode
//#define YUV_CS_MODE_DEFAULT YUV_CS_PAL // Default YUV Color Standard Mode
#define YUV_SB_BITEK 0xA5
// YUV ID
typedef enum YUV_ID
{
YUV_ID_CVBS_11,
MIN_YUV_ID = YUV_ID_CVBS_11,
YUV_ID_CVBS_21,
YUV_ID_YC_Y12C22,
MAX_YUV_ID = YUV_ID_YC_Y12C22,
MAX_YUV_NO,
YUV_ID_YCBCR,
YUV_ID_CVBS_12,
YUV_ID_CVBS_22,
YUV_ID_YC_Y11C21,
YUV_ID_RGB888,
YUV_ID_RGB888_YPBPR,
YUV_ID_RGB888_SCART,
YUV_ID_RGB565,
YUV_ID_ITU656,
YUV_ID_ITU656LIKE
} enumYUV_ID;
/* ::::::::::::::::::::::::::::::::::::
YUV High/Low bound
:::::::::::::::::::::::::::::::::::: */
#define BRIGHTNESS_DEFAULT EYD_BRIGHTNESS
#define BRIGHTNESS_MAX 255
#define BRIGHTNESS_MIN 0
#define BRIGHTNESS_STEP 1
#define BRIGHTNESS_OSD_MAX 255
#define BRIGHTNESS_OSD_MIN 0
#define BRIGHTNESS_OSD_STEP 1
#define CONTRAST_DEFAULT EYD_CONTRAST
#define CONTRAST_MAX 255
#define CONTRAST_MIN 0
#define CONTRAST_STEP 1
#define CONTRAST_OSD_MAX 255
#define CONTRAST_OSD_MIN 0
#define CONTRAST_OSD_STEP 1
#define SATURATION_DEFAULT EYD_SATURATION
#define SATURATION_MAX 127
#define SATURATION_MIN 0
#define SATURATION_STEP 1
#define SATURATION_OSD_MAX 127
#define SATURATION_OSD_MIN 0
#define SATURATION_OSD_STEP 1
#define HUE_DEFAULT EYD_HUE
#define HUE_MAX 255
#define HUE_MIN 0
#define HUE_STEP 1
#define HUE_OSD_MAX 255
#define HUE_OSD_MIN 0
#define HUE_OSD_STEP 1
#define SHARPNESS_DEFAULT EYD_SHARPNESS
#define SHARPNESS_MAX 127
#define SHARPNESS_MIN 0
#define SHARPNESS_STEP 1
#define SHARPNESS_OSD_MAX 127
#define SHARPNESS_OSD_MIN 0
#define SHARPNESS_OSD_STEP 1
#define YUV_SET_BLACKLEVEL ON
#define YUV_SET_BRIGHTNESS ON
#define YUV_SET_CONTRAST ON
#define YUV_SET_HUE ON
#define YUV_SET_SATURATION ON
#define YUV_SET_SHARPNESS ON
#define YUV_SET_SKINTONE OFF
#if (VP_IF_CFG == VP_IF_BITEK)
#define YUV_MAD_IF 0x83
#else
#define YUV_MAD_IF 0x20
#endif
#define YUV_MAD YUV_MAD_IF // YUV IF MAD
/* ------------------------------------
Type Definitions
------------------------------------ */
/* ------------------------------------
Variables Definitions/Declarations
------------------------------------ */
#ifdef _YUV_C_
EXTERN UB8 CODE abYUV_0101_0137[] = {
// 0 1 2 3 4 5 6 7 8 9 A B C D E F
/* 0 */ 0x78,0x0C,0x07,0x28,0x00,0x18,0x84,0x10,0x31,0x00,0x00,0x00,0x5C,0x30,0x00,
/* 1 */ 0x03,0x80,0x80,0x80,0x40,0xC4,0x09,0xB8,0x4A,0x38,0x02,0xF9,0xD0,0xFC,0x00,0x7C,
/* 2 */ 0x80,0x00,0xFF,0x00,0x81,0x00,0xFF,0xFF,0x00,0x00,0x44,0x33,0x40,0x40,0x22,0x88,
/* 3 */ 0x00,0x3C,0x14,0x64,0x40,0x20,0x77,0xDC
};
#else
EXTERN UB8 CODE abYUV_0101_0137[ 0x037 ];
#endif
EXTERN UB8 bYUV_SB; // Video Decoder Status Byte
EXTERN UB8 bLastSB;
EXTERN UB8 bLastCS;
EXTERN UB8 b642;
EXTERN UB8 bColorStd;
#ifdef _YUV_C_
UB8 CODE * CODE apbYUV_Source[ MAX_YUV_NO ] =
{
//123456789
" CVBS 1", // 0: CVBS1 AIN11
" CVBS 2", // 1: CVBS2 AIN21
" S-Video", // 2: Y/C AIN01/AIN11
};
UB8 CODE * CODE apbYUV_ColorStd[] =
{
//123456789
" PAL", // 0
" PAL/N", // 1
" SECAM", // 2
" PAL/M", // 3
"NTSC 4.43", // 4
" NTSC/M", // 5
"NTSC 4.43", // 6
" B/W", // 7
" PAL-60", // 8
};
#else
extern UB8 CODE * CODE apbYUV_Source[];
extern UB8 CODE * CODE apbYUV_ColorStd[];
#endif // _YUV_C_
sbit VD_nRST_N = P0 ^ 0;
#define VD_RESET_ON { }
#define VD_RESET_OFF { }
#define YUV_GO_POOLING ON
#if (YUV_GO_POOLING)
EXTERN BOOL fYUV_Go_Pooling;
#endif
/* ------------------------------------
Function Prototypes
------------------------------------ */
EXTERN UB8 YUV_GetColorStandard(void);
EXTERN void YUV_Go(void);
EXTERN void YUV_HardwareReset(void);
EXTERN void YUV_Init(void);
EXTERN BOOL YUV_Ready(void);
#if (YUV_SET_BLACKLEVEL)
EXTERN void YUV_SetBlackLevel(UB8 bBlackLevel);
#endif
#if (YUV_SET_BRIGHTNESS)
EXTERN void YUV_SetBrightness(UB8 bBrightness);
#endif
#if (YUV_SET_CONTRAST)
EXTERN void YUV_SetContrast(UB8 bContrast);
#endif
#if (YUV_SET_HUE)
EXTERN void YUV_SetHue(UB8 bHue);
#endif
#if (YUV_SET_SATURATION)
EXTERN void YUV_SetSaturation(UB8 bSaturation);
#endif
#if (YUV_SET_SHARPNESS)
EXTERN void YUV_SetSharpness(UB8 bSharpness);
#endif
#if (YUV_SET_SKINTONE)
EXTERN void YUV_SetSkinTone(UB8 bSkinTone);
#endif
EXTERN void YUV_SetSourceMode(UB8 bMode);
#endif /* _YUV_H_ */
/* %% End Of File %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -