allwinner_a64/android/hardware/aw/camera/SceneFactory/hdr.h
2018-08-08 17:00:29 +08:00

81 lines
No EOL
2 KiB
C

#ifndef __HDR_H___
#define __HDR_H___
#define MAX(a,b) (((a) > (b)) ? (a) : (b))
#define MIN(a,b) (((a) < (b)) ? (a) : (b))
#define Radius(u,v) ((Au=Abs((u))) > (Av=Abs((v))) ? \
(Aw=Av/Au, Au*sqrt_new(1.0+Aw*Aw)) : \
(Av ? (Aw=Au/Av, Av*sqrt_new(1.+Aw*Aw)) : 0.0f) )
#define Sign(u,v) ( (v)>=0.0 ? Abs(u) : -Abs(u) )
#define Max(u,v) ( (u)>(v)? (u) : (v) )
#define Abs(x) ( (x)>0.0f? (x) : (-(x)) )
#define Sqrt(a, b) (MAX(a,b) + MIN(a,b)/2)
#define CLIP(a,i,s) (((a) > (s)) ? (s) : MAX(a,i))
struct HarrisPoint
{
int row;
int col;
float row_sub;
float col_sub;
};
struct NormPoint
{
double x;
double y;
double w;
};
struct PixelPoint
{
int x;
int y;
};
struct LineSegment
{
PixelPoint corner[2];
};
struct Quadrilateral
{
PixelPoint corner[4];
};
struct Octagon
{
int numgon;
PixelPoint corner[8];
};
struct Rectangle
{
int xmin;
int xmax;
int ymin;
int ymax;
};
extern "C" void ImgRGB2NV21_neon(unsigned char *pu8RgbBuffer, unsigned char *pu8SrcYUV, int *l32Width_stride, int l32Height);
extern "C" void ImgNV212RGB_neon(unsigned char *pu8RgbBuffer, int pu8SrcYUV, int l32Width, int l32Height);
extern void homology_display(double *matH);
extern void GetExposureGain(const int width, const int height, unsigned int *AeStat, unsigned int *HistStat,
double *gain_dark_ptr, double *gain_bright_ptr);
extern void captureHDR(void * DarkYuv, void * LightYuv, void * TransYuv, void * HDRYuv, int * HDRMode_ptr,
const int width, const int height, const double gain_bright, const double gain_dark);
extern void captureDenoise(void * Image0Yuv, void * Image1Yuv, void * Image2Yuv, void * Image3Yuv, void * Image4Yuv, int * DenosieMode_ptr, const int width, const int height);
#endif // __HDR_H___