diff options
author | Joshua Bakita <bakitajoshua@gmail.com> | 2019-10-07 19:13:39 -0400 |
---|---|---|
committer | Joshua Bakita <bakitajoshua@gmail.com> | 2019-10-07 19:13:39 -0400 |
commit | 386b7d3366f1359a265da207a9cafa3edf553b64 (patch) | |
tree | c76120c2c138faed822e4ae386be6ef22a738a78 /baseline/source/epic/epic.h | |
parent | 54a3f7091a2146b29c73a6fdc4b62a5c4ad7a3d8 (diff) |
Reorganize and commit all the modified TACLeBench code and run scripts
Diffstat (limited to 'baseline/source/epic/epic.h')
-rw-r--r-- | baseline/source/epic/epic.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/baseline/source/epic/epic.h b/baseline/source/epic/epic.h new file mode 100644 index 0000000..5e5675f --- /dev/null +++ b/baseline/source/epic/epic.h | |||
@@ -0,0 +1,72 @@ | |||
1 | #ifndef __EPIC_H_ | ||
2 | #define __EPIC_H_ | ||
3 | |||
4 | #define EPIC_VERSION 1.1 | ||
5 | |||
6 | /* ============= FUNDAMENTAL LIMITATIONS ============= */ | ||
7 | |||
8 | /* Maximum x- or y-size of image */ | ||
9 | #define MAX_IMAGE_DIM 16384 | ||
10 | |||
11 | /* Maximum number of pyramid levels (value 3*levs+1 stored in 5 bits). | ||
12 | This doesn't need to be larger than log2(MAX_IMAGE_DIM/FILTER_SIZE). */ | ||
13 | #define MAX_LEVELS 10 | ||
14 | |||
15 | /* Maximum number of quantization bins. This essentially determines | ||
16 | the maximum depth image to be represented. */ | ||
17 | #define MAX_BINS 511 | ||
18 | |||
19 | /* ============= SECONDARY (derived) LIMITATIONS ============= */ | ||
20 | |||
21 | /* This number determines the precision of the stored binsizes: | ||
22 | stored coefficients are accurate to +/- (1/SCALE_FACTOR). | ||
23 | On the other hand, this number also will limit the maximum amount | ||
24 | of compression. | ||
25 | It should not be more than [2^(8*sizeof(BinValueType))]/256. */ | ||
26 | #define SCALE_FACTOR 128 | ||
27 | |||
28 | /* This number must be consistent with the filters that are | ||
29 | hardwired into epic.c */ | ||
30 | #define FILTER_SIZE 15 | ||
31 | |||
32 | /* Log (base 2) of MAX_IMAGE_DIM^2: (bits required to store the dimensions) */ | ||
33 | #define LOG_MAX_IMAGE_SIZE 32 | ||
34 | |||
35 | /* The type of the quantized images. Must be SIGNED, and capable of holding | ||
36 | values in the range [-MAX_BINS, MAX_BINS] */ | ||
37 | typedef short BinIndexType; | ||
38 | |||
39 | /* The type used to represent the binsizes. Should be UNSIGNED. If this is | ||
40 | changed, be sure to change the places in epic.c and unepic.c where | ||
41 | binsizes are written or read from files. */ | ||
42 | typedef unsigned short BinValueType; | ||
43 | |||
44 | /* Number of possible values for a symbol. This must be at least | ||
45 | (MAX_BINS * 4) (one sign bit, one tag bit)... */ | ||
46 | #define NUM_SYMBOL_VALUES 65536 | ||
47 | |||
48 | /* Function prototypes. */ | ||
49 | void epic_build_pyr( float *image, int x_size, int y_size, int num_levels, | ||
50 | float *lo_filter, float *hi_filter, int filter_size ); | ||
51 | |||
52 | void epic_build_level( float *image, int level_x_size, int level_y_size, | ||
53 | float *lo_filter, float *hi_filter, | ||
54 | int filter_size, float *result_block ); | ||
55 | |||
56 | void epic_internal_transpose( register float *mat, int rows, | ||
57 | register int cols ); | ||
58 | |||
59 | void epic_reflect1( register float *filt, register int x_dim, int y_dim, | ||
60 | int x_pos, int y_pos, register float *result, int f_or_e ); | ||
61 | |||
62 | void epic_internal_filter( register float *image, register int x_dim, | ||
63 | register int y_dim, float *filt, | ||
64 | register float *temp, register int x_fdim, | ||
65 | register int y_fdim, int xgrid_start, | ||
66 | int xgrid_step, int ygrid_start, int ygrid_step, | ||
67 | register float *result ); | ||
68 | |||
69 | void epic_reflect1( float *filt, int x_dim, int y_dim, int x_pos, int y_pos, | ||
70 | float *result, int f_or_e ); | ||
71 | |||
72 | #endif // __EPIC_H_ | ||