|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| #include <iostream>
|
| #include <iomanip>
|
| #include <math.h>
|
| #include <vector>
|
| #include <map>
|
| #include <set>
|
| #include <bits/stdc++.h>
|
| using namespace std;
|
|
|
| #define WIDTH 256
|
| #define HEIGHT 256
|
|
|
| #define ANGLE 10
|
| #define SRC_ANGLE 10
|
| #define CAMNUM 10
|
| #define CAMNUM_2 20
|
|
|
| #define CENTER_X 128
|
| #define CENTER_Y 128
|
| #define ART_ANGULAR 12
|
| #define ART_RADIAL 3
|
| #define ART_COEF 35
|
| #define ART_COEF_q4 18
|
| #define ART_LUT_RADIUS 50
|
| #define ART_LUT_SIZE 101
|
| #define PI 3.141592653
|
| #define HYPOT(x,y) sqrt((x)*(x)+(y)*(y))
|
| #define FD_COEF 10
|
|
|
|
|
| #define SPHERE_NUM 64
|
| #define HAMONIC_NUM 64
|
| #define SH_KEY_NUM SPHERE_NUM * HAMONIC_NUM
|
|
|
|
|
| #define S3D_KEY_NUM 22
|
|
|
| extern "C" void run(unsigned char * q8_table, unsigned char * align10, char * destfn,
|
| unsigned char * dest_ArtCoeff, unsigned char * dest_FdCoeff_q8,
|
| unsigned char * dest_CirCoeff_q8, unsigned char * dest_EccCoeff_q8)
|
| {
|
|
|
|
|
| FILE *fpt;
|
|
|
|
|
| fpt = fopen("./load_data/q8_table", "rb");
|
| fread(q8_table, sizeof(unsigned char), 65536, fpt);
|
| fclose(fpt);
|
|
|
|
|
| fpt = fopen("./load_data/align10.txt", "rb");
|
| fread(align10, sizeof(unsigned char), 60*CAMNUM_2, fpt);
|
| fclose(fpt);
|
|
|
|
|
| char filename[1000];
|
|
|
| sprintf(filename, "%s_q8_v1.8.art", destfn);
|
| if( (fpt = fopen(filename, "rb")) == NULL )
|
| { printf("%s does not exist.\n", filename); return; }
|
| fread(dest_ArtCoeff, ANGLE * CAMNUM * ART_COEF, sizeof(unsigned char), fpt);
|
| fclose(fpt);
|
|
|
| sprintf(filename, "%s_q8_v1.8.fd", destfn);
|
| if( (fpt = fopen(filename, "rb")) == NULL )
|
| { printf("%s does not exist.\n", filename); return;}
|
| fread(dest_FdCoeff_q8, sizeof(unsigned char), ANGLE * CAMNUM * FD_COEF, fpt);
|
| fclose(fpt);
|
|
|
| sprintf(filename, "%s_q8_v1.8.cir", destfn);
|
| if( (fpt = fopen(filename, "rb")) == NULL )
|
| { printf("%s does not exist.\n", filename); return; }
|
| fread(dest_CirCoeff_q8, sizeof(unsigned char), ANGLE * CAMNUM, fpt);
|
| fclose(fpt);
|
|
|
| sprintf(filename, "%s_q8_v1.8.ecc", destfn);
|
| if( (fpt = fopen(filename, "rb")) == NULL )
|
| { printf("%s does not exist.\n", filename); return; }
|
| fread(dest_EccCoeff_q8, sizeof(unsigned char), ANGLE * CAMNUM, fpt);
|
| fclose(fpt);
|
|
|
| }
|
|
|