pq_tab.h 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369
  1. #ifndef _VIP_TAB__H
  2. #define _VIP_TAB__H
  3. #include <drv_spi_flashalloc_internal.h>
  4. #include <drv_vip_internal.h>
  5. #include <drv_pq_internal.h>
  6. #include "osdef.h" //joshua check
  7. //#include "osdef.h"
  8. //-------------------------------------------------------------------------------------------
  9. //note code flash usage
  10. // 128k
  11. // p addr : bc040000 ~ bc05ffff
  12. // v addr : ba040000 ~ bc05ffff
  13. //
  14. #if SEPERATE_YPBPR1_YPBPR2
  15. #define VTAB_INITIAL_TALBE 0
  16. #define VTAB_INITIAL_VALUE 1
  17. #define VTAB_EXTS_YPP_VALUE 2
  18. #define VTAB_EXTS_YPP_HD_VALUE 3
  19. #define VTAB_EXTS_RGB_VALUE 4
  20. #define VTAB_CVD2_TV_VALUE 5
  21. #define VTAB_CVD2_AV_VALUE 6
  22. #define VTAB_CVD2_SV_VALUE 7
  23. #define VTAB_MPEG_VALUE 8
  24. #define VTAB_MPEG_HD_VALUE 9
  25. #define VTAB_HDMI_VALUE 10
  26. #define VTAB_HDMI_HD_VALUE 11
  27. #define VTAB_SCART_RGB_VALUE 12
  28. #define VTAB_EXTS_YPP2_SD_VALUE 13
  29. #define VTAB_EXTS_YPP2_HD_VALUE 14
  30. #define VTAB_MAX_SOURCE 13
  31. #else
  32. #define VTAB_INITIAL_TALBE 0
  33. #define VTAB_INITIAL_VALUE 1
  34. #define VTAB_EXTS_YPP_VALUE 2
  35. #define VTAB_EXTS_RGB_VALUE 3
  36. #define VTAB_CVD2_TV_VALUE 4
  37. #define VTAB_CVD2_AV_VALUE 5
  38. #define VTAB_CVD2_SV_VALUE 6
  39. #define VTAB_MPEG_VALUE 7
  40. #define VTAB_HDMI_VALUE 8
  41. #define VTAB_SCART_RGB_VALUE 9
  42. #define VTAB_EXTS_YPP_HD_VALUE 10
  43. #define VTAB_MPEG_HD_VALUE 11
  44. #define VTAB_HDMI_HD_VALUE 12
  45. #define VTAB_MAX_SOURCE 11
  46. #endif
  47. #define REG_ADDR_LVDS_MAPPING 0xbe000124 //VIP_Improve_Item_13, Register address changed for 531 chip
  48. #ifdef NEW_COEFFICIENT
  49. enum
  50. {
  51. HCOEFF_ScalingUP,
  52. HCOEFF_NoScaling,
  53. HCOEFF_Scaling_100_110,
  54. HCOEFF_Scaling_110_120,
  55. HCOEFF_Scaling_120_130,
  56. HCOEFF_Scaling_130_140,
  57. HCOEFF_Scaling_140_150,
  58. HCOEFF_Scaling_150_160,
  59. HCOEFF_Scaling_160_170,
  60. HCOEFF_Scaling_170_180,
  61. HCOEFF_Scaling_180_190,
  62. HCOEFF_Scaling_190_200,
  63. HCOEFF_Scaling_200_250,
  64. HCOEFF_Scaling_250_300,
  65. HCOEFF_Scaling_300_350,
  66. HCOEFF_Scaling_350_400,
  67. VCOEFF_ScalingUP,// 16
  68. VCOEFF_Scaling_100_110,
  69. VCOEFF_Scaling_110_120,
  70. VCOEFF_Scaling_120_130,
  71. VCOEFF_Scaling_130_140,
  72. VCOEFF_Scaling_140_150,
  73. VCOEFF_Scaling_150_160,
  74. VCOEFF_Scaling_160_170,
  75. VCOEFF_Scaling_170_180,
  76. VCOEFF_Scaling_180_190, //25
  77. VCOEFF_Scaling_190_200,
  78. VCOEFF_Scaling_200_250,
  79. VCOEFF_Scaling_250_300,
  80. VCOEFF_Scaling_300_350,
  81. VCOEFF_Scaling_350_400,
  82. COEFF_Scaling_1,
  83. };
  84. #endif
  85. typedef struct
  86. {
  87. INT32 sine;
  88. INT32 cosine;
  89. }HUE;
  90. typedef struct
  91. {
  92. UINT32 uiDetAngle;
  93. INT32 siSineTheta;
  94. INT32 siCosineTheta;
  95. UINT32 uiRotAngle;
  96. INT32 siSine;
  97. INT32 siCosine;
  98. UINT8 ucLowRange;
  99. UINT8 ucHiRange;
  100. }REGION_COLOR;
  101. #define PQ_MAX_ITEM_DEGREE 16
  102. #define PQ_MAX_LSNR_DEGREE 24
  103. #define PQ_MAX_MPEGNR_DEGREE 10
  104. #define PQ_MAX_PEAKING_DEGREE 8
  105. #define PQ_MAX_SNR_ULOW_DEGREE 24
  106. #define PQ_MAX_BIN_ITEM 16
  107. typedef struct _USER_BIN_SET
  108. {
  109. INT32 minus5[PQ_MAX_BIN_ITEM];
  110. INT32 minus4[PQ_MAX_BIN_ITEM];
  111. INT32 minus3[PQ_MAX_BIN_ITEM];
  112. INT32 minus2[PQ_MAX_BIN_ITEM];
  113. INT32 minus1[PQ_MAX_BIN_ITEM];
  114. INT32 zero[PQ_MAX_BIN_ITEM];
  115. INT32 plus1[PQ_MAX_BIN_ITEM];
  116. INT32 plus2[PQ_MAX_BIN_ITEM];
  117. INT32 plus3[PQ_MAX_BIN_ITEM];
  118. INT32 plus4[PQ_MAX_BIN_ITEM];
  119. INT32 plus5[PQ_MAX_BIN_ITEM];
  120. } USER_BIN_SET;
  121. typedef struct _DC_STRENGTH
  122. {
  123. INT32 dpy_hist_max_slope;
  124. INT32 dpy_hist_min_slope;
  125. INT32 dpy_fl_y_en;
  126. INT32 dark_scene_max_slope_offset;
  127. INT32 dark_scene_min_slope_offset;
  128. } DC_STRENGTH;
  129. typedef struct _PEAKING_STRENGTH
  130. {
  131. INT32 dpy_filter_y_h1;
  132. INT32 dpy_filter_y_h2;
  133. INT32 dpy_filter_y_h3;
  134. INT32 dpy_filter_y_h4;
  135. } PEAKING_STRENGTH;
  136. typedef struct _LUMA_TNR_CORING
  137. {
  138. INT32 vdi_tnr_th1_adj_min;
  139. INT32 vdi_tnr_th1;
  140. INT32 vdi_tnr_th1_adj_max;
  141. INT32 vdi_tnr_th1_fact;
  142. } LUMA_TNR_CORING;
  143. typedef struct _LUMA_TNR_STRENGTH
  144. {
  145. INT32 vdi_tnr_alpha_init;
  146. INT32 vdi_tnr_alpha_adj_min_dith;
  147. INT32 vdi_tnr_alpha_adj_min;
  148. INT32 vdi_tnr_alpha;
  149. } LUMA_TNR_STRENGTH;
  150. typedef struct _CHROMA_TNR_CORING
  151. {
  152. INT32 vdi_tnr_th1_chroma;
  153. } CHROMA_TNR_CORING;
  154. typedef struct _CHROMA_TNR_STRENGTH
  155. {
  156. INT32 vdi_tnr_alpha_chroma;
  157. } CHROMA_TNR_STRENGTH;
  158. typedef struct _TNR_ULTRA_LOW
  159. {
  160. INT32 vdi_tnr_alpha ;
  161. } TNR_ULTRA_LOW;
  162. typedef struct _LUMA_SNR1_CORING
  163. {
  164. INT32 vdi_snr_hl_coring;
  165. INT32 vdi_snr_hl_coring_limit;
  166. INT32 vdi_snr_hl_coring_th3;
  167. } LUMA_SNR1_CORING;
  168. typedef struct _LUMA_SNR1_STRENGTH
  169. {
  170. INT32 vdi_snr_ulow_gain_inc;
  171. } LUMA_SNR1_STRENGTH;
  172. typedef struct _LUMA_SNR2_CORING
  173. {
  174. INT32 vdi_snr_vl_coring;
  175. INT32 vdi_snr_vl_coring_limit;
  176. INT32 vdi_snr_vl_coring_th3;
  177. } LUMA_SNR2_CORING;
  178. typedef struct _LUMA_SNR_STRENGTH
  179. {
  180. INT32 vdi_snr_vl_smooth;
  181. } LUMA_SNR2_STRENGTH;
  182. typedef struct _CHROMA_SNR_CORING
  183. {
  184. INT32 vdi_snr_hc_coring;
  185. INT32 vdi_snr_hc_coring_limit;
  186. INT32 vdi_snr_hc_coring_th1;
  187. INT32 vdi_snr_hc_coring_th2;
  188. INT32 vdi_snr_hc_coring_th3;
  189. } CHROMA_SNR_CORING;
  190. typedef struct _CHROMA_SNR_STRENGTH
  191. {
  192. INT32 vdi_snr_hc_smooth;
  193. } CHROMA_SNR_STRENGTH;
  194. typedef struct _SNR1_ULTRA_LOW
  195. {
  196. INT32 vdi_snr_hl_coring;
  197. } SNR1_ULTRA_LOW;
  198. typedef struct _SNR2_ULTRA_LOW
  199. {
  200. INT32 vdi_snr_vl_coring;
  201. } SNR2_ULTRA_LOW;
  202. typedef struct _BLOCK_NR_CORING
  203. {
  204. INT32 vdi_dbk_hdiff_th2;
  205. } BLOCK_NR_CORING;
  206. typedef struct _BLOCK_NR_STRENGTH
  207. {
  208. INT32 vdi_dbk_hdiff_th1;
  209. INT32 vdi_dbk_hdiff_slope1;
  210. } BLOCK_NR_STRENGTH;
  211. typedef struct _MOSQUITO_NR_CORING
  212. {
  213. INT32 vdi_mnr_h_coring_inc;
  214. INT32 vdi_mnr_v_coring_inc;
  215. } MOSQUITO_NR_CORING;
  216. typedef struct _MOSQUITO_NR_STRENGTH
  217. {
  218. INT32 vdi_mnr_gain_inc;
  219. } MOSQUITO_NR_STRENGTH;
  220. typedef struct _CR_HUE
  221. {
  222. INT32 sin;
  223. INT32 cos;
  224. } CR_HUE;
  225. //#ifdef VIP_SW_DC
  226. #if 1
  227. typedef struct _ST_SWDC_Info
  228. {
  229. UINT16 ulHistCaseCur;
  230. }ST_SWDC_Info;
  231. typedef struct _ST_SWDC_Param
  232. {
  233. UINT8 ucSWDC_En;
  234. UINT8 ucSWDC_Var_Cond_En;
  235. UINT16 wSWDC_Ratio[6];
  236. UINT16 wSWDC_Factor[5];
  237. UINT16 wSWDC_Alpha;
  238. UINT16 wSWDC_Static_Alpha[4];
  239. UINT16 wSWDC_YLevel;
  240. UINT16 wSWDC_CLevel;
  241. }ST_SWDC_Param;
  242. typedef struct _ST_SWDC_Slpoe
  243. {
  244. UINT8 SWDC_HistSlop[36][16];
  245. }ST_SWDC_Slope;
  246. typedef struct _ST_SWDC_Chroma
  247. {
  248. UINT8 SWDC_HistChroma[36][16];
  249. }ST_SWDC_Chroma;
  250. #endif
  251. typedef struct _RGB_GAIN
  252. {
  253. INT32 RGBGain[3];
  254. } RGB_GAIN;
  255. extern UINT8 ID_GammaString10[14];
  256. extern UINT8 ID_GammaString12[14];
  257. extern UINT32 ColorSpaceTableYCC_Full601[12];
  258. extern UINT32 ColorSpaceTableYCC_Full709[12];
  259. extern UINT32 ColorSpaceTableYCC_Limit601[12];
  260. extern UINT32 ColorSpaceTableYCC_Limit709[12];
  261. extern UINT32 ColorSpaceTableFCC[12];
  262. extern UINT32 ColorSpaceTable624[12];
  263. extern UINT32 ColorSpaceTable240M[12];
  264. extern UINT32 ColorSpaceTableRGB[12];
  265. extern UINT32 ColorSpaceJPEG[12];
  266. extern UINT32 ColorSpaceTableJPEGRGB[12];
  267. extern UINT32 ColorSpaceTableRGB2YCC_Full601[12];
  268. extern UINT32 ColorSpaceTableRGB2YCC_Full709[12];
  269. extern UINT32 ColorSpaceTableRGB2YCC_Limit601[12];
  270. extern UINT32 ColorSpaceTableRGB2YCC_Limit709[12];
  271. extern HUE HueSetting[];
  272. extern HUE NewHueSetting[];
  273. extern const USER_BIN_SET g_StaticGamma;
  274. extern const USER_BIN_SET g_BlackLevelExtension;
  275. extern const USER_BIN_SET g_WhiteLevelExtension;
  276. extern const DC_STRENGTH DCStrength[PQ_MAX_ITEM_DEGREE];
  277. extern const PEAKING_STRENGTH PeakingStrength[PQ_MAX_PEAKING_DEGREE];
  278. extern const LUMA_TNR_CORING LTNRCoring[PQ_MAX_ITEM_DEGREE];
  279. extern const CHROMA_TNR_CORING CTNRCoring[PQ_MAX_ITEM_DEGREE];
  280. extern const CHROMA_TNR_STRENGTH CTNRStrength[PQ_MAX_ITEM_DEGREE];
  281. extern const CHROMA_TNR_STRENGTH CVD2CTNRStrength[PQ_MAX_ITEM_DEGREE];
  282. extern const LUMA_SNR1_CORING LSNR1Coring[PQ_MAX_LSNR_DEGREE];
  283. extern const LUMA_SNR1_STRENGTH LSNR1Strength[PQ_MAX_ITEM_DEGREE];
  284. extern const LUMA_SNR1_STRENGTH PCSDSNR1Strength[PQ_MAX_ITEM_DEGREE];
  285. extern const LUMA_SNR1_STRENGTH PCHDSNR1Strength[PQ_MAX_ITEM_DEGREE];
  286. extern const LUMA_SNR2_CORING LSNR2Coring[PQ_MAX_LSNR_DEGREE];
  287. extern const LUMA_SNR2_STRENGTH LSNR2Strength[PQ_MAX_ITEM_DEGREE];
  288. extern const CHROMA_SNR_CORING CSNRCoring[PQ_MAX_ITEM_DEGREE];
  289. extern const CHROMA_SNR_STRENGTH CSNRStrength[PQ_MAX_ITEM_DEGREE];
  290. extern const BLOCK_NR_CORING BlockNrCoring[PQ_MAX_MPEGNR_DEGREE];
  291. extern const BLOCK_NR_STRENGTH BlockNrStrength[PQ_MAX_MPEGNR_DEGREE];
  292. extern const MOSQUITO_NR_CORING MosquitoNrCoring[PQ_MAX_MPEGNR_DEGREE];
  293. extern const MOSQUITO_NR_STRENGTH MosquitoNrStrength[PQ_MAX_MPEGNR_DEGREE];
  294. extern const LUMA_TNR_STRENGTH ATVLTNRStrength[PQ_MAX_ITEM_DEGREE];
  295. extern const LUMA_TNR_STRENGTH AVLTNRStrength[PQ_MAX_ITEM_DEGREE];
  296. extern const LUMA_TNR_STRENGTH SDLTNRStrength[PQ_MAX_ITEM_DEGREE];
  297. extern const LUMA_TNR_STRENGTH HDLTNRStrength[PQ_MAX_ITEM_DEGREE];
  298. extern const LUMA_TNR_STRENGTH PCSDLTNRStrength[PQ_MAX_ITEM_DEGREE];
  299. extern const LUMA_TNR_STRENGTH PCHDLTNRStrength[PQ_MAX_ITEM_DEGREE];
  300. extern const CHROMA_TNR_CORING ATVCTNRCoring[PQ_MAX_ITEM_DEGREE];
  301. extern const CHROMA_TNR_CORING SDCTNRCoring[PQ_MAX_ITEM_DEGREE];
  302. extern const CHROMA_TNR_CORING HDCTNRCoring[PQ_MAX_ITEM_DEGREE];
  303. extern const LUMA_SNR1_STRENGTH ATVLSNR1Strength[PQ_MAX_ITEM_DEGREE];
  304. extern const LUMA_SNR1_STRENGTH AVLSNR1Strength[PQ_MAX_ITEM_DEGREE];
  305. extern const LUMA_SNR1_STRENGTH SDSNR1Strength[PQ_MAX_ITEM_DEGREE];
  306. extern const LUMA_SNR1_STRENGTH HDSNR1Strength[PQ_MAX_ITEM_DEGREE];
  307. extern const TNR_ULTRA_LOW TnrUltraLowAlpha[PQ_MAX_ITEM_DEGREE];
  308. extern const SNR1_ULTRA_LOW Snr1UltraLowCoring[PQ_MAX_SNR_ULOW_DEGREE];
  309. extern const SNR2_ULTRA_LOW Snr2UltraLowCoring[PQ_MAX_SNR_ULOW_DEGREE];
  310. extern const CR_HUE ANGLE_TABLE[360];
  311. extern const INT32 COLOR_LUTABLE[512];
  312. #endif //#ifndef _VIP_TAB__H