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

📄 yuv.h

📁 Bitek 公司 bit1611b模拟屏驱动芯片外接MCU驱动DEMO源码
💻 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 + -