hi_comm_vpss.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438
  1. /******************************************************************************
  2. Copyright (C), 2016-2018, Hisilicon Tech. Co., Ltd.
  3. ******************************************************************************
  4. File Name : hi_comm_vpss.h
  5. Version : Initial Draft
  6. Author : Hisilicon multimedia software group
  7. Created : 2016/09/27
  8. Last Modified :
  9. Description :
  10. Function List :
  11. ******************************************************************************/
  12. #ifndef __HI_COMM_VPSS_H__
  13. #define __HI_COMM_VPSS_H__
  14. #ifdef __cplusplus
  15. #if __cplusplus
  16. extern "C" {
  17. #endif
  18. #endif /* __cplusplus */
  19. #include "hi_type.h"
  20. #include "hi_common.h"
  21. #include "hi_errno.h"
  22. #include "hi_comm_video.h"
  23. #define VPSS_SHARPEN_GAIN_NUM (32)
  24. #define VPSS_AUTO_ISO_STRENGTH_NUM (16)
  25. #define VPSS_YUV_SHPLUMA_NUM (32)
  26. #define VPSS_3DNR_MAX_AUTO_PARAM_NUM (16)
  27. #define HI_ERR_VPSS_NULL_PTR HI_DEF_ERR(HI_ID_VPSS, EN_ERR_LEVEL_ERROR, EN_ERR_NULL_PTR)
  28. #define HI_ERR_VPSS_NOTREADY HI_DEF_ERR(HI_ID_VPSS, EN_ERR_LEVEL_ERROR, EN_ERR_SYS_NOTREADY)
  29. #define HI_ERR_VPSS_INVALID_DEVID HI_DEF_ERR(HI_ID_VPSS, EN_ERR_LEVEL_ERROR, EN_ERR_INVALID_DEVID)
  30. #define HI_ERR_VPSS_INVALID_CHNID HI_DEF_ERR(HI_ID_VPSS, EN_ERR_LEVEL_ERROR, EN_ERR_INVALID_CHNID)
  31. #define HI_ERR_VPSS_EXIST HI_DEF_ERR(HI_ID_VPSS, EN_ERR_LEVEL_ERROR, EN_ERR_EXIST)
  32. #define HI_ERR_VPSS_UNEXIST HI_DEF_ERR(HI_ID_VPSS, EN_ERR_LEVEL_ERROR, EN_ERR_UNEXIST)
  33. #define HI_ERR_VPSS_NOT_SUPPORT HI_DEF_ERR(HI_ID_VPSS, EN_ERR_LEVEL_ERROR, EN_ERR_NOT_SUPPORT)
  34. #define HI_ERR_VPSS_NOT_PERM HI_DEF_ERR(HI_ID_VPSS, EN_ERR_LEVEL_ERROR, EN_ERR_NOT_PERM)
  35. #define HI_ERR_VPSS_NOMEM HI_DEF_ERR(HI_ID_VPSS, EN_ERR_LEVEL_ERROR, EN_ERR_NOMEM)
  36. #define HI_ERR_VPSS_NOBUF HI_DEF_ERR(HI_ID_VPSS, EN_ERR_LEVEL_ERROR, EN_ERR_NOBUF)
  37. #define HI_ERR_VPSS_ILLEGAL_PARAM HI_DEF_ERR(HI_ID_VPSS, EN_ERR_LEVEL_ERROR, EN_ERR_ILLEGAL_PARAM)
  38. #define HI_ERR_VPSS_BUSY HI_DEF_ERR(HI_ID_VPSS, EN_ERR_LEVEL_ERROR, EN_ERR_BUSY)
  39. #define HI_ERR_VPSS_BUF_EMPTY HI_DEF_ERR(HI_ID_VPSS, EN_ERR_LEVEL_ERROR, EN_ERR_BUF_EMPTY)
  40. #define VPSS_INVALID_FRMRATE -1
  41. #define VPSS_CHN0 0
  42. #define VPSS_CHN1 1
  43. #define VPSS_CHN2 2
  44. #define VPSS_CHN3 3
  45. #define VPSS_INVALID_CHN -1
  46. typedef enum hiVPSS_NR_TYPE_E
  47. {
  48. VPSS_NR_TYPE_VIDEO = 0,
  49. VPSS_NR_TYPE_SNAP = 1,
  50. VPSS_NR_TYPE_BUTT
  51. }VPSS_NR_TYPE_E;
  52. typedef enum hiNR_MOTION_MODE_E
  53. {
  54. NR_MOTION_MODE_NORMAL = 0, /* normal */
  55. NR_MOTION_MODE_COMPENSATE = 1, /* motion compensate */
  56. NR_MOTION_MODE_COMPENSATE_PART = 2, /* motion compensate locality */
  57. NR_MOTION_MODE_BUTT
  58. }NR_MOTION_MODE_E;
  59. typedef struct hiVPSS_NR_ATTR_S
  60. {
  61. VPSS_NR_TYPE_E enNrType;
  62. COMPRESS_MODE_E enCompressMode; /* RW; Reference frame compress mode */
  63. NR_MOTION_MODE_E enNrMotionMode; /* RW; NR motion compensate mode. */
  64. }VPSS_NR_ATTR_S;
  65. typedef struct hiVPSS_GRP_ATTR_S
  66. {
  67. HI_U32 u32MaxW; /* RW; Range: Hi3559AV100 = [64, 16384] | Hi3519AV100 = [64, 8192]; Width of source image. */
  68. HI_U32 u32MaxH; /* RW; Range: Hi3559AV100 = [64, 16384] | Hi3519AV100 = [64, 8192]; Height of source image. */
  69. PIXEL_FORMAT_E enPixelFormat; /* RW; Pixel format of source image. */
  70. DYNAMIC_RANGE_E enDynamicRange; /* RW; DynamicRange of source image. */
  71. FRAME_RATE_CTRL_S stFrameRate; /* Grp frame rate contrl. */
  72. HI_BOOL bNrEn; /* RW; NR enable. */
  73. VPSS_NR_ATTR_S stNrAttr; /* RW; NR attr. */
  74. } VPSS_GRP_ATTR_S;
  75. typedef enum hiVPSS_CHN_MODE_E
  76. {
  77. VPSS_CHN_MODE_USER = 0, /* User mode. */
  78. VPSS_CHN_MODE_AUTO = 1 /* Auto mode. */
  79. } VPSS_CHN_MODE_E;
  80. typedef struct hiVPSS_CHN_ATTR_S
  81. {
  82. VPSS_CHN_MODE_E enChnMode; /* RW; Vpss channel's work mode. */
  83. HI_U32 u32Width; /* RW; Range: Hi3559AV100 = [64, 16384] | Hi3519AV100 = [64, 8192]; Width of target image. */
  84. HI_U32 u32Height; /* RW; Range: Hi3559AV100 = [64, 16384] | Hi3519AV100 = [64, 8192]; Height of target image. */
  85. VIDEO_FORMAT_E enVideoFormat; /* RW; Video format of target image. */
  86. PIXEL_FORMAT_E enPixelFormat; /* RW; Pixel format of target image. */
  87. DYNAMIC_RANGE_E enDynamicRange; /* RW; DynamicRange of target image. */
  88. COMPRESS_MODE_E enCompressMode; /* RW; Compression mode of the output. */
  89. FRAME_RATE_CTRL_S stFrameRate; /* Frame rate control info */
  90. HI_BOOL bMirror; /* RW; Mirror enable. */
  91. HI_BOOL bFlip; /* RW; Flip enable. */
  92. HI_U32 u32Depth; /* RW; Range: [0, 8]; User get list depth. */
  93. ASPECT_RATIO_S stAspectRatio; /* Aspect Ratio info. */
  94. } VPSS_CHN_ATTR_S;
  95. typedef enum hiVPSS_CROP_COORDINATE_E
  96. {
  97. VPSS_CROP_RATIO_COOR = 0, /* Ratio coordinate. */
  98. VPSS_CROP_ABS_COOR /* Absolute coordinate. */
  99. } VPSS_CROP_COORDINATE_E;
  100. typedef struct hiVPSS_CROP_INFO_S
  101. {
  102. HI_BOOL bEnable; /* RW; CROP enable. */
  103. VPSS_CROP_COORDINATE_E enCropCoordinate; /* RW; Coordinate mode of the crop start point. */
  104. RECT_S stCropRect; /* CROP rectangular. */
  105. } VPSS_CROP_INFO_S;
  106. typedef struct hiVPSS_LDC_ATTR_S
  107. {
  108. HI_BOOL bEnable; /* RW;Whether LDC is enbale */
  109. LDC_ATTR_S stAttr;
  110. } VPSS_LDC_ATTR_S;
  111. typedef struct hiVPSS_ROTATION_EX_ATTR_S
  112. {
  113. HI_BOOL bEnable; /* Whether ROTATE_EX_S is enbale */
  114. ROTATION_EX_S stRotationEx; /* Rotate Attribute */
  115. }VPSS_ROTATION_EX_ATTR_S;
  116. typedef struct hiVPSS_LOW_DELAY_INFO_S
  117. {
  118. HI_BOOL bEnable; /* RW; Low delay enable. */
  119. HI_U32 u32LineCnt; /* RW; Range: [16, 16384]; Low delay shoreline. */
  120. }VPSS_LOW_DELAY_INFO_S;
  121. typedef struct hiVPSS_EXT_CHN_ATTR_S
  122. {
  123. VPSS_CHN s32BindChn; /* RW; Range: [0, 3]; Channel bind to. */
  124. HI_U32 u32Width; /* RW; Range: Hi3559AV100 = [64, 16384] | Hi3519AV100 = [64, 8192]; Width of target image. */
  125. HI_U32 u32Height; /* RW; Range: Hi3559AV100 = [64, 16384] | Hi3519AV100 = [64, 8192]; Height of target image. */
  126. VIDEO_FORMAT_E enVideoFormat; /* RW; Video format of target image. */
  127. PIXEL_FORMAT_E enPixelFormat; /* RW; Pixel format of target image. */
  128. DYNAMIC_RANGE_E enDynamicRange; /* RW; Dynamic range. */
  129. COMPRESS_MODE_E enCompressMode; /* RW; Compression mode of the output. */
  130. HI_U32 u32Depth; /* RW; Range: [0, 8]; User get list depth. */
  131. FRAME_RATE_CTRL_S stFrameRate; /* Frame rate control info */
  132. } VPSS_EXT_CHN_ATTR_S;
  133. typedef struct hiVPSS_GRP_SHARPEN_MANUAL_ATTR_S
  134. {
  135. HI_U16 au16TextureStr[VPSS_SHARPEN_GAIN_NUM]; /* RW; Range: [0, 4095]; Undirectional sharpen strength for texture and detail enhancement*/
  136. HI_U16 au16EdgeStr[VPSS_SHARPEN_GAIN_NUM]; /* RW; Range: [0, 4095]; Directional sharpen strength for edge enhancement*/
  137. HI_U16 u16TextureFreq; /* RW; Range: [0, 4095]; Texture frequency adjustment. Texture and detail will be finer when it increase*/
  138. HI_U16 u16EdgeFreq; /* RW; Range: [0, 4095]; Edge frequency adjustment. Edge will be narrower and thiner when it increase*/
  139. HI_U8 u8OverShoot; /* RW; Range: [0, 127]; u8OvershootAmt*/
  140. HI_U8 u8UnderShoot; /* RW; Range: [0, 127]; u8UndershootAmt*/
  141. HI_U8 u8ShootSupStr; /* RW; Range: [0, 255]; overshoot and undershoot suppression strength, the amplitude and width of shoot will be decrease when shootSupSt increase*/
  142. HI_U8 u8DetailCtrl; /* RW; Range: [0, 255]; Different sharpen strength for detail and edge. When it is bigger than 128, detail sharpen strength will be stronger than edge. */
  143. } VPSS_GRP_SHARPEN_MANUAL_ATTR_S;
  144. typedef struct hiVPSS_GRP_SHARPEN_AUTO_ATTR_S
  145. {
  146. HI_U16 au16TextureStr[VPSS_SHARPEN_GAIN_NUM][VPSS_AUTO_ISO_STRENGTH_NUM]; /* RW; Range: [0, 4095]; Undirectional sharpen strength for texture and detail enhancement*/
  147. HI_U16 au16EdgeStr[VPSS_SHARPEN_GAIN_NUM][VPSS_AUTO_ISO_STRENGTH_NUM]; /* RW; Range: [0, 4095]; Directional sharpen strength for edge enhancement*/
  148. HI_U16 au16TextureFreq[VPSS_AUTO_ISO_STRENGTH_NUM]; /* RW; Range: [0, 4095]; Texture frequency adjustment. Texture and detail will be finer when it increase*/
  149. HI_U16 au16EdgeFreq[VPSS_AUTO_ISO_STRENGTH_NUM]; /* RW; Range: [0, 4095]; Edge frequency adjustment. Edge will be narrower and thiner when it increase*/
  150. HI_U8 au8OverShoot[VPSS_AUTO_ISO_STRENGTH_NUM]; /* RW; Range: [0, 127]; u8OvershootAmt*/
  151. HI_U8 au8UnderShoot[VPSS_AUTO_ISO_STRENGTH_NUM]; /* RW; Range: [0, 127]; u8UndershootAmt*/
  152. HI_U8 au8ShootSupStr[VPSS_AUTO_ISO_STRENGTH_NUM]; /* RW; Range: [0, 255]; overshoot and undershoot suppression strength, the amplitude and width of shoot will be decrease when shootSupSt increase*/
  153. HI_U8 au8DetailCtrl[VPSS_AUTO_ISO_STRENGTH_NUM]; /* RW; Range: [0, 255]; Different sharpen strength for detail and edge. When it is bigger than 128, detail sharpen strength will be stronger than edge. */
  154. } VPSS_GRP_SHARPEN_AUTO_ATTR_S;
  155. typedef struct hiVPSS_GRP_SHARPEN_ATTR_S
  156. {
  157. HI_BOOL bEnable; /* RW; Sharpen enable. */
  158. OPERATION_MODE_E enOpType; /* RW; Sharpen Operation mode. */
  159. HI_U8 au8LumaWgt[VPSS_YUV_SHPLUMA_NUM]; /* RW; Range: [0, 127]; sharpen weight based on loacal luma*/
  160. VPSS_GRP_SHARPEN_MANUAL_ATTR_S stSharpenManualAttr; /* RW; Sharpen manual attribute*/
  161. VPSS_GRP_SHARPEN_AUTO_ATTR_S stSharpenAutoAttr; /* RW; Sharpen auto attribute*/
  162. } VPSS_GRP_SHARPEN_ATTR_S;
  163. /****************************VPSS 3DNR********************/
  164. /* 3DNR X interface for Hi3519AV100 */
  165. typedef struct
  166. {
  167. HI_U8 IES0, IES1, IES2, IES3;
  168. HI_U16 IEDZ : 10, _rb_ : 6;
  169. } tV56aIEy;
  170. typedef struct
  171. {
  172. HI_U8 SPN6 : 3, SFR : 5;
  173. HI_U8 SBN6 : 3, PBR6 : 5;
  174. HI_U8 SFS2, SFT2, SBR2;
  175. HI_U8 SFS4, SFT4, SBR4;
  176. HI_U16 STH1 : 9, SFN1 : 3, SFN0 : 3, NRyEn : 1;
  177. HI_U16 STH2 : 9, SFN2 : 3, BWSF4 : 1, kMode : 3;
  178. HI_U16 STH3 : 9, SFN3 : 3, tEdge : 2, TriTh : 1, _rb_ : 1;
  179. } tV56aSFy;
  180. typedef struct
  181. {
  182. HI_U16 MADZ : 10, MAI0 : 2, MAI1 : 2, MAI2 : 2;
  183. HI_U8 MADK, MABR;
  184. HI_U16 MATH : 10, MATE : 4, MATW : 2;
  185. HI_U8 MASW : 4, MABW : 3, MAXN : 1, _rB_;
  186. } tV56aMDy;
  187. typedef struct
  188. {
  189. HI_U16 TFS : 4, TDZ : 10, TDX : 2;
  190. HI_U8 TFR[5], TSS : 4, TSI : 1, _rb_ : 2;
  191. HI_U16 SDZ : 10, STR : 5, bRef : 1;
  192. } tV56aTFy;
  193. typedef struct
  194. {
  195. HI_U8 SFC, _rb_ : 2, TFC : 6;
  196. HI_U16 CSFS : 10, CSFR : 6;
  197. HI_U16 CTFS : 4, CIIR : 1;
  198. HI_U16 CTFR : 11;
  199. } tV56aNRc;
  200. typedef struct
  201. {
  202. tV56aIEy IEy[2];
  203. tV56aSFy SFy[4];
  204. tV56aMDy MDy[2];
  205. tV56aTFy TFy[2];
  206. tV56aNRc NRc;
  207. HI_U16 SBSk2[32], SDSk2[32];
  208. HI_U16 SBSk3[32], SDSk3[32];
  209. } VPSS_NRX_V1_S;
  210. typedef struct hiVPSS_NRX_PARAM_MANUAL_V1_S
  211. {
  212. VPSS_NRX_V1_S stNRXParam;
  213. } VPSS_NRX_PARAM_MANUAL_V1_S;
  214. typedef struct hiVPSS_NRX_PARAM_AUTO_V1_S
  215. {
  216. HI_U32 u32ParamNum;
  217. HI_U32* pau32ISO;
  218. VPSS_NRX_V1_S* pastNRXParam;
  219. } VPSS_NRX_PARAM_AUTO_V1_S;
  220. typedef struct hiVPSS_NRX_PARAM_V1_S
  221. {
  222. OPERATION_MODE_E enOptMode; /* RW;Adaptive NR */
  223. VPSS_NRX_PARAM_MANUAL_V1_S stNRXManual; /* RW;NRX V1 param for manual video */
  224. VPSS_NRX_PARAM_AUTO_V1_S stNRXAuto; /* RW;NRX V1 param for auto video */
  225. } VPSS_NRX_PARAM_V1_S;
  226. typedef struct
  227. {
  228. HI_U8 IES0, IES1, IES2, IES3;
  229. HI_U16 IEDZ : 10, IEEn : 1, _rb_ : 5;
  230. } tV500_VPSS_IEy;
  231. typedef struct
  232. {
  233. HI_U8 SPN3 : 3 ;
  234. HI_U8 SBN3 : 3, PBR3 : 5, JMODE;
  235. HI_U8 SFR;
  236. HI_U8 JSFR[3];
  237. HI_U8 SFS1, SFT1, SBR1;
  238. HI_U8 SFS2, SFT2, SBR2;
  239. HI_U8 SFS4, SFT4, SBR4;
  240. HI_U8 CPRat, CPMode;
  241. HI_U8 BRT0, BRT1;
  242. HI_U16 STH1 : 9, SFN1 : 3, SFN0 : 3, NRyEn : 1;
  243. HI_U16 STH2 : 9, SFN2 : 3, kWnd : 1, kMode : 3;
  244. HI_U16 STH3 : 9, SFN3 : 3, _rb_ : 3, TriTh : 1;
  245. HI_U16 STHd1 : 9;
  246. HI_U16 STHd2 : 9;
  247. HI_U16 STHd3 : 9;
  248. } tV500_VPSS_SFy;
  249. typedef struct
  250. {
  251. /* PATH0 */
  252. HI_U16 MADZ0 : 9, MAI00 : 2, MAI01 : 2, MAI02 : 2;
  253. HI_U16 MADZd0 : 9;
  254. HI_U8 MABR0 : 8;
  255. HI_U8 MABRd0 : 8;
  256. HI_U16 MATH0 : 10, MATE0 : 4, MATW0 : 2;
  257. HI_U8 MASW0 : 4, MAXN : 1, _rB0_;
  258. HI_U16 MATHd0 : 10, MABW0 : 4;
  259. HI_S32 FWTDZ0;
  260. HI_U8 FWTSLP0 : 4;
  261. HI_U8 bSDF00 : 1, SDFSLP00 : 3, bSDF10 : 1, SDFSLP10 : 3;
  262. HI_U8 RFWUTH0 : 4, RMODE0 : 2;
  263. /* PATH1 */
  264. HI_U16 MADZ1 : 9, MAI10 : 2, MAI11 : 2, MAI12 : 2;
  265. HI_U16 MADZd1 : 9;
  266. HI_U8 MABR1 : 8;
  267. HI_U8 MABRd1 : 8;
  268. HI_U16 MATH1 : 10, MATE1 : 4, MATW1 : 2;
  269. HI_U8 MASW1 : 4, MABW1 : 4;
  270. HI_U16 MATHd1 : 10;
  271. HI_S32 FWTDZ1;
  272. HI_U8 FWTSLP1 : 4;
  273. HI_U8 bSDF01 : 1, SDFSLP01 : 3, bSDF11 : 1, SDFSLP11 : 3;
  274. HI_U8 RMODE1 : 2, RFWUTH1 : 4;
  275. /* CONTROL */
  276. HI_U8 FMODE : 2, WMODE : 1;
  277. HI_U16 SADDZ : 12, SADSLP : 4;
  278. } tV500_VPSS_MDy;
  279. typedef struct
  280. {
  281. HI_U16 TFS0 : 4, TDZ0 : 10, TDX0 : 2;
  282. HI_U8 TFR0[7], TSS0 : 4, TSI0 : 4;
  283. HI_U16 SDZ0 : 10, STR0 : 5;
  284. HI_U8 RFI0 : 3, HGI0 : 3, DZMode0 : 1;
  285. HI_U16 TFS1 : 4, TDZ1 : 10, TDX1 : 2;
  286. HI_U8 TFR1[7], TSS1 : 4, TSI1 : 4;
  287. HI_U16 SDZ1 : 10, STR1 : 5;
  288. HI_U8 RFI1 : 3, HGI1 : 3, DZMode1 : 1;
  289. HI_U8 TED : 2, TEDI : 3, bRfr : 1, bRef : 1, _rb_1;
  290. } tV500_VPSS_TFy;
  291. typedef struct
  292. {
  293. HI_U8 SMODE : 1, bRFU : 1, RFUI : 3;
  294. HI_U16 SDTH : 12, SDSLP : 5;
  295. HI_U16 RFDZ0 : 11, RFSLP0 : 5;
  296. HI_U16 RFDZ1 : 11, RFSLP1 : 5;
  297. HI_U16 RFDZ2 : 11, RFSLP2 : 5;
  298. HI_U8 RFUTH0 : 5, RFHI0 : 2;
  299. HI_U8 RFUTH1 : 5, RFHI1 : 2, RFHI2 : 2;
  300. } tV500_VPSS_RFs;
  301. typedef struct
  302. {
  303. HI_U8 SFC, _rb_ : 2, TFC : 6;
  304. HI_U8 CSFR : 6;
  305. HI_U16 CTFS : 4, CIIR : 1, CTPW : 4;
  306. HI_U16 CTFR : 11;
  307. } tV500_VPSS_NRc;
  308. typedef struct
  309. {
  310. tV500_VPSS_IEy IEy[4];
  311. tV500_VPSS_SFy SFy[4];
  312. tV500_VPSS_MDy MDy[2];
  313. tV500_VPSS_RFs RFs;
  314. tV500_VPSS_TFy TFy[2];
  315. tV500_VPSS_NRc NRc;
  316. HI_U8 SBSk2[32], SDSk2[32];
  317. HI_U8 SBSk3[32], SDSk3[32];
  318. } VPSS_NRX_V2_S;
  319. typedef struct hiVPSS_NRX_PARAM_MANUAL_V2_S
  320. {
  321. VPSS_NRX_V2_S stNRXParam;
  322. } VPSS_NRX_PARAM_MANUAL_V2_S;
  323. typedef struct hiVPSS_NRX_PARAM_AUTO_V2_S
  324. {
  325. HI_U32 u32ParamNum;
  326. HI_U32* pau32ISO;
  327. VPSS_NRX_V2_S* pastNRXParam;
  328. } VPSS_NRX_PARAM_AUTO_V2_S;
  329. typedef struct hiVPSS_NRX_PARAM_V2_S
  330. {
  331. OPERATION_MODE_E enOptMode; /* RW;Adaptive NR */
  332. VPSS_NRX_PARAM_MANUAL_V2_S stNRXManual; /* RW;NRX V2 param for manual video */
  333. VPSS_NRX_PARAM_AUTO_V2_S stNRXAuto; /* RW;NRX V2 param for auto video */
  334. } VPSS_NRX_PARAM_V2_S;
  335. /* 3DNR interface */
  336. typedef enum hiVPSS_NR_VER_E
  337. {
  338. VPSS_NR_V1 = 1,
  339. VPSS_NR_V2 = 2,
  340. VPSS_NR_V3 = 3,
  341. VPSS_NR_V4 = 4,
  342. VPSS_NR_BUTT
  343. }VPSS_NR_VER_E;
  344. typedef struct hiVPSS_GRP_NRX_PARAM_S
  345. {
  346. VPSS_NR_VER_E enNRVer;
  347. union
  348. {
  349. VPSS_NRX_PARAM_V1_S stNRXParam_V1; /* interface X V1 for Hi3519AV100 */
  350. VPSS_NRX_PARAM_V2_S stNRXParam_V2;
  351. };
  352. }VPSS_GRP_NRX_PARAM_S;
  353. typedef struct hiVPSS_PARAM_MOD_S
  354. {
  355. HI_BOOL bOneBufForLowDelay;
  356. HI_U32 u32VpssVbSource;
  357. }VPSS_MOD_PARAM_S;
  358. #ifdef __cplusplus
  359. #if __cplusplus
  360. }
  361. #endif
  362. #endif /* __cplusplus */
  363. #endif /* __HI_COMM_VPSS_H__ */