📄 prev270.h
字号:
/* DM270 ARM Evaluation Software (c)Texas Instruments 2003*//** \defgroup PREV Preview Engine *//*@{*//** \file prev270.h \brief Preview Engine related APIs Also refer to DM270 register manual for details \anchor FIXED_POINT_NOTATION \note Fixed point decimal notation \n The fractional notation used in the documentation is as follows: \n\n \b \c (S|U)xQy \n \n is used to denote fractional numbers. Here, \n 'x', represents the total number of bits in the real number including the fractional part \n 'y', represents the number of bits allocated to the fractional part. i.e (x - y) is the number of bits allocated to the integer part, (including the sign bit) \n 'S', indicates that the number is signed, with negative numbers represented in 2's complement format \n 'U', indicates that the number is unsigned. \n \n For example, \n U8Q5, means that the value can range from 0 to 7.96875 \n S8Q6, means that the value can range from -2 to 1.984375 \n */#ifndef __PREV_270_H__#define __PREV_270_H__#include <system/armsys270.h>#define PREV_COL_Gb 0#define PREV_COL_B 1#define PREV_COL_R 2#define PREV_COL_Gr 3/** \brief Preview Engine Configuration Parameters*/typedef struct { BOOL ccdcInputWidth8bits; ///< Width of data from CCDC, TRUE: 8bits, FALSE: 10bits BOOL alawEnable; ///< Inverse A-law mode, TRUE: enable, FALSE: disable BOOL oneShotEnable; ///< One shot mode, TRUE: enable, FALSE: disable BOOL resizeOnlyEnable; ///< Resize only mode, TRUE: enable, FALSE: disable BOOL sdramInputEnable; ///< SDRAM input mode, TRUE: enable, FALSE: disable BOOL burstAlignModeEnable; ///< Burst align mode, TRUE: enable, FALSE: disable BOOL writeEnableValid; ///< CCDC WEN signal valid, TRUE: valid, FALSE: invalid char *readAddress; ///< Read Address, absolute SDRAM address, must be 32byte aligned char *writeAddress; ///< Write/output Address, absolute SDRAM address, must be 32byte aligned Uint16 hstart; ///< When sdramInputEnable == FALSE, horizontal start position of taking data to SDRAM, unit: number of pixels from CCDC HD \n When sdramInputEnable == TRUE, horizontal size of data in SDRAM, unit: pixels Uint16 vstart; ///< Vertical start position of capturing data to SDRAM, unit: number of lines from CCDC VD Uint16 inputPixelsH; ///< Input data width, unit: pixels Uint16 inputLinesV; ///< Input data height, unit: lines Uint16 outputPixelsH; ///< Output data width, unit: pixels Uint16 outputLinesV; ///< Output data height, unit: lines} PREV_ConfigData;/** \brief Preview Engine Mode data*/typedef struct { Uint8 hinterpollationMode; ///< Horizontal interpollation mode, 0:5-tap filter, 1:2-tap filter Uint8 vinterpollationMode; ///< Vertical interpollation mode, 0:5-tap filter, 1:2-tap filter BOOL horizontalNoiseFilterEnable; ///< Horizontal noise filter, TRUE: enable, FALSE: disable Uint8 horizontalNoiseFilterLevel; ///< Horizontal noise filter level, 0:very weak, 1:weak, 2:strong, 3:very strong BOOL verticalNoiseFilterEnable; ///< Vertical noise filter, TRUE: enable, FALSE: disable BOOL smoothEnable; ///< Smoothing, TRUE: enable, FALSE: disable Uint8 smoothLevel; ///< Smoothing level, 0: Less, 1: More Uint8 ccdcMode; ///< CCDC Mode, 0: RGB, 1: Complementary color cmode Uint8 greenBlendMode; ///< Valid when ccdcMode = 1, Green blen mode, 0..4, see register PVSET2 for details Uint8 colorPatternEvenEven; ///< Color Pattern, Even Pixel, Even Line. 0: PREV_COL_Gb, 1: PREV_COL_B, 2:PREV_COL_R, 3:PREV_COL_Gr Uint8 colorPatternOddEven; ///< Color Pattern, Odd Pixel, Even Line. 0: PREV_COL_Gb, 1: PREV_COL_B, 2:PREV_COL_R, 3:PREV_COL_Gr Uint8 colorPatternEvenOdd; ///< Color Pattern, Even Pixel, Odd Line. 0: PREV_COL_Gb, 1: PREV_COL_B, 2:PREV_COL_R, 3:PREV_COL_Gr Uint8 colorPatternOddOdd; ///< Color Pattern, Odd Pixel, Odd Line. 0: PREV_COL_Gb, 1: PREV_COL_B, 2:PREV_COL_R, 3:PREV_COL_Gr} PREV_ModeData;/** \brief Preview Engine White Balance related data \see \ref FIXED_POINT_NOTATION*/typedef struct { Uint16 dgain; ///< Digital gain. Format U10Q8 Uint16 gainGr; ///< WB Gain for Gr. Format U8Q6 Uint16 gainR; ///< WB Gain for R. Format U8Q6 Uint16 gainGb; ///< WB Gain for Gb. Format U8Q6 Uint16 gainB; ///< WB Gain for B. Format U8Q6 Uint16 reserved; ///< Reserved, neglect this field } PREV_WbData;/** \brief RGB to RGB transformation See Preview Engine register manual for details \code RGB_out[3] = matrix[3][3] * RGB_in[3] + offset[3] \endcode \see \ref FIXED_POINT_NOTATION*/typedef struct { Uint16 matrix[3][3]; ///< Format S8Q6 Uint16 offset[3]; ///< Format 2's complement integer} PREV_Rgb2RgbData;/** \brief RGB to YUV transformation See Preview Engine register manual for details \code YUV_out[3] = matrix[3][3] * RGB_in[3] + offset[3] \endcode \see \ref FIXED_POINT_NOTATION*/typedef struct { Uint16 matrix[3][3]; ///< Format S8Q6 Uint16 offset[3]; ///< See register YOFST, COFST } PREV_Rgb2YuvData;STATUS PREV_enable( BOOL enable );BOOL PREV_isEnabled();STATUS PREV_setConfig( PREV_ConfigData *prevConfig ); STATUS PREV_setMode( PREV_ModeData *prevMode ); STATUS PREV_setWhiteBalance( PREV_WbData *whiteBalance ); STATUS PREV_setBlackCompensation( Int8 offsetR, Int8 offsetG, Int8 offsetB ); STATUS PREV_setRGB2RGB( PREV_Rgb2RgbData *rgb2rgbConfig ); STATUS PREV_setRGB2YUV( PREV_Rgb2YuvData *rgb2yuvConfig ); STATUS PREV_setGamma( Uint8 tableSelect, BOOL enableR, BOOL enableG, BOOL enableB ); STATUS PREV_setContrast( Uint8 gainY, Uint8 offsetY); STATUS PREV_setColorSuppression( BOOL enable, Uint8 threshold, Uint8 gain); STATUS PREV_setYCbCrLevel( Uint8 minY, Uint8 maxY, Uint8 minC, Uint8 maxC ); STATUS PREV_setReadAddr( char *address );STATUS PREV_setWriteAddr( char *address );#endif /* __PREV_270_H__ *//*@}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -