Gem_isp_enhance.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. // =============================================================================
  2. // File : Gem_isp_enhance.h
  3. // Version : v1.0
  4. // Author : Honglei Zhu
  5. // Date : 2014.12.5
  6. // -----------------------------------------------------------------------------
  7. // Description :
  8. //
  9. // -----------------------------------------------------------------------------
  10. #ifndef _GEM_ISP_ENHANCE_H_
  11. #define _GEM_ISP_ENHANCE_H_
  12. #define GEM_ENHANCE_BASE (0x190)
  13. struct sharp_t
  14. {
  15. unsigned char enable; // 1 bit, 锐化功能使能
  16. unsigned char mode; // 1 bit, 锐化模式, 0: 强烈 1: 柔和
  17. // "强烈"与"柔和"的效果差异较小
  18. unsigned char coring; // 3 bit, 有效值 0 ~ 7, 锐化配置选择
  19. // 值越大, 图像越模糊, 图像锐化程度降低.
  20. unsigned char strength; // 8 bit, 有效值 0 ~ 255
  21. // 值越大, 图像越模糊, 图像锐化程度降低.
  22. unsigned short gainmax; // 10 bit, 有效值 0 ~ 255, 大于255等于255的效果
  23. // 0的效果等于255的效果
  24. // 从1到255, 值越大, 锐化效果越强
  25. };
  26. struct bcst_t
  27. {
  28. unsigned short enable; // 1 bit
  29. short bright; // 10 bit, 有效值 -255 ~ 255
  30. // 增加或减小每个像素点的亮度值
  31. unsigned short contrast; // 11 bit, 有效值 0 ~ 2047
  32. // 通过调整动态范围来改变对比度,
  33. // 值越大, 直方图越向右移动, 左侧的低光处细节逐渐丢失, 右边的高光处逐渐趋于饱和.
  34. // 值越小, 直方图越向左移动, 右侧的高光处细节逐渐丢失, 左侧的低光处逐渐趋于饱和.
  35. unsigned short satuation; // 11 bit, 有效值 0 ~ 2047
  36. // 色彩饱和度调节
  37. // 值越大, 色彩越鲜艳. 值越小, 越趋向于灰色.
  38. // 等于0时, 为黑白灰度效果
  39. short hue; // 8 bit, 有效值 -128 ~ 127
  40. // 色相角调整
  41. unsigned short offset0; // 10 bit, 有效值 0 ~ 255.
  42. // 对比度为1024时,该设置值将无效
  43. unsigned short offset1; // 10 bit, 有效值 0 ~ 255.
  44. // saturation offset (0,255) (default 128)
  45. // hue为0时, 该设置值将无效
  46. };
  47. typedef struct isp_enhance_
  48. {
  49. struct sharp_t sharp;
  50. struct bcst_t bcst;
  51. } isp_enhance_t;
  52. typedef struct isp_enhance_ *isp_enhance_ptr_t;
  53. void isp_enhance_init (isp_enhance_ptr_t p_enhance);
  54. void isp_enhance_init_io (isp_enhance_ptr_t p_enhance);
  55. #endif