12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- /******************************************************************************/
- /**
- *
- * @file drv_vdi.h
- *
- * @brief This file specifies the APIs provided to control VDI(Video Detection Interface)
- *
- * @note Copyright (c) 2013 S2 Technology Co., Ltd. \n
- * All rights reserved.
- *
- * @author
- *
- ******************************************************************************/
- #ifndef __DRV_VDI_H__
- #define __DRV_VDI_H__
- /*******************************************************************************
- * Header include
- ******************************************************************************/
- #include "drv_types.h"
- typedef enum _DRV_VDI_YUVTopBot_TYPE
- {
- eVDI_Y_Top=0,
- eVDI_Y_Bot,
- eVDI_UV_Top,
- eVDI_UV_Bot,
- } DRV_VDI_YUVTopBot_TYPE;
- void DRV_VDI_Reset(BOOL fEnable);
- void DRV_VDI_MemReadEn(BOOL fEnable);
- void DRV_VDI_SetMem_Y_Offset(UINT32 offset);
- UINT32 DRV_VDI_GetMem_Y_Offset(void);
- void DRV_VDI_SetMem_Y_Size(UINT32 size);
- void DRV_VDI_SetMem_UV_Offset(UINT32 offset);
- UINT32 DRV_VDI_GetMem_UV_Offset(void);
- void DRV_VDI_SetMem_UV_Size(UINT32 size);
- void DRV_VDI_SetMem_Motion_Offset(UINT32 offset);
- void DRV_VDI_SetMem_Motion_Size(UINT32 size);
- void DRV_VDI_SetMem_MBW_Offset(UINT32 offset);
- void DRV_VDI_SetMem_MBW_Size(UINT32 size);
- void DRV_VDI_SetMem_Y_BotAddress(UINT32 f0, UINT32 f1, UINT32 f2);
- void DRV_VDI_SetMem_Y_TopAddress(UINT32 f0, UINT32 f1, UINT32 f2);
- void DRV_VDI_SetMem_YUV_TopBotAddress(DRV_VDI_YUVTopBot_TYPE eType, UINT32 offset, UINT32 address);
- UINT16 DRV_VDI_GetMem_YUV_TopBotAddress(DRV_VDI_YUVTopBot_TYPE eType, UINT32 offset);
- void DRV_VDI_SetMem_UV_BotAddress(UINT32 f0, UINT32 f1, UINT32 f2);
- void DRV_VDI_SetMem_UV_TopAddress(UINT32 f0, UINT32 f1, UINT32 f2);
- void DRV_VDI_SetMem_Motion_BotAddress(UINT32 f0, UINT32 f1, UINT32 f2);
- void DRV_VDI_SetMem_Motion_TopAddress(UINT32 f0, UINT32 f1, UINT32 f2);
- void DRV_VDI_SetMem_MBW_BotAddress(UINT32 f0, UINT32 f1, UINT32 f2);
- void DRV_VDI_SetMem_MBW_TopAddress(UINT32 f0, UINT32 f1, UINT32 f2);
- void DRV_VDI_EnableReadMBW(BOOL fEnable);
- void DRV_VDI_SetNumMBWLinesPerField(UINT8 num);
- void DRV_VDI_SetHSizeofHalfField(UINT16 size);
- void DRV_VDI_SetNumLinesPerFieldForDeinterlace(UINT16 num);
- void DRV_VDI_SetMode(UINT8 mode);
- void DRV_VDI_EnablePause(BOOL fEnable);
- void DRV_VDI_EnableChromaForMotionDetection(BOOL fEnable);
- void DRV_VDI_SetMem_YUV888Size(UINT32 y_size, UINT32 uv_size);
- void DRV_VDI_SetMem_LastNum(UINT32 y_lastnum, UINT32 uv_lastnum, UINT32 mo_lastnum, UINT32 mbw_lastnum);
- void DRV_VDI_Enable6FieldBuffers(BOOL fEnable);
- void DRV_VDI_SetTemporalNoiseReductionAlphaInit(UINT8 value);
- UINT8 DRV_VDI_GetTemporalNoiseReductionAlphaInit(void);
- void DRV_VDI_SetFieldCompare_H_StartEnd(UINT16 start, UINT16 end);
- void DRV_VDI_SetFieldCompare_V_StartEnd(UINT16 start, UINT16 end);
- void DRV_VDI_GetFieldCompare_H_StartEnd(UINT16 *start, UINT16 *end);
- void DRV_VDI_SetMotionAdaptiveDetectionThd(UINT32 thd, UINT32 minthd, UINT32 maxthd);
- void DRV_VDI_GetMotionAdaptiveDetectionThd(UINT32 *thd, UINT32 *minthd, UINT32 *maxthd);
- void DRV_VDI_Enable3DInterleaving(BOOL fEnable);
- void DRV_VDI_GetNoiseEstimationThd(INT32 *fd_chg_thd, INT32 *invald_thd, INT32 *total_th);
- void DRV_VDI_GetSpatialNoiseReductionThd(INT32 *snr_th1, INT32 *snr_th2, INT32 *snr_th3);
- /**
- * @brief Set VDI Memory control.
- *
- * This function setup VDI sram control method, decide if release time slot for other channel
- *
- * @param uEnable : value 0 mean as previous design(occupy time slot even not access sram anymore)
- * , 1 for release time slot for other channel
- * @return : n/a
- */
- void DRV_VDI_SetMifOpt(UINT8 uEnable);
- /**
- * @brief Set VDI SNR setting
- *
- * This function setup VDI fixed SNR setting
- *
- * @param uEnable : n/a
- * @return : n/a
- */
- void DRV_VDI_SetSNR(void);
- #endif
|