1 /********************************************************************
2  *                                                                  *
3  * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
4  *                                                                  *
5  * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
6  * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
7  * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
8  *                                                                  *
9  * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002    *
10  * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
11  *                                                                  *
12  ********************************************************************
13 
14   function: lookup data
15 
16  ********************************************************************/
17 
18 #ifndef _V_LOOKUP_DATA_H_
19 #define _V_LOOKUP_DATA_H_
20 
21 #include <ogg/os_types.h>
22 
23 #define FROMdB_LOOKUP_SZ 35
24 #define FROMdB2_LOOKUP_SZ 32
25 #define FROMdB_SHIFT 5
26 #define FROMdB2_SHIFT 3
27 #define FROMdB2_MASK 31
28 
29 static const ogg_int32_t FROMdB_LOOKUP[FROMdB_LOOKUP_SZ]={
30   0x003fffff, 0x0028619b, 0x00197a96, 0x0010137a,
31   0x000a24b0, 0x00066666, 0x000409c3, 0x00028c42,
32   0x00019b8c, 0x000103ab, 0x0000a3d7, 0x00006760,
33   0x0000413a, 0x00002928, 0x000019f8, 0x00001062,
34   0x00000a56, 0x00000686, 0x0000041e, 0x00000299,
35   0x000001a3, 0x00000109, 0x000000a7, 0x00000069,
36   0x00000042, 0x0000002a, 0x0000001a, 0x00000011,
37   0x0000000b, 0x00000007, 0x00000004, 0x00000003,
38   0x00000002, 0x00000001, 0x00000001};
39 
40 static const ogg_int32_t FROMdB2_LOOKUP[FROMdB2_LOOKUP_SZ]={
41   0x000001fc, 0x000001f5, 0x000001ee, 0x000001e7,
42   0x000001e0, 0x000001d9, 0x000001d2, 0x000001cc,
43   0x000001c5, 0x000001bf, 0x000001b8, 0x000001b2,
44   0x000001ac, 0x000001a6, 0x000001a0, 0x0000019a,
45   0x00000194, 0x0000018e, 0x00000188, 0x00000183,
46   0x0000017d, 0x00000178, 0x00000172, 0x0000016d,
47   0x00000168, 0x00000163, 0x0000015e, 0x00000159,
48   0x00000154, 0x0000014f, 0x0000014a, 0x00000145,
49 };
50 
51 #define INVSQ_LOOKUP_I_SHIFT 10
52 #define INVSQ_LOOKUP_I_MASK 1023
53 static const long INVSQ_LOOKUP_I[64+1]={
54 	   92682,   91966,   91267,   90583,
55 	   89915,   89261,   88621,   87995,
56 	   87381,   86781,   86192,   85616,
57 	   85051,   84497,   83953,   83420,
58 	   82897,   82384,   81880,   81385,
59 	   80899,   80422,   79953,   79492,
60 	   79039,   78594,   78156,   77726,
61 	   77302,   76885,   76475,   76072,
62 	   75674,   75283,   74898,   74519,
63 	   74146,   73778,   73415,   73058,
64 	   72706,   72359,   72016,   71679,
65 	   71347,   71019,   70695,   70376,
66 	   70061,   69750,   69444,   69141,
67 	   68842,   68548,   68256,   67969,
68 	   67685,   67405,   67128,   66855,
69 	   66585,   66318,   66054,   65794,
70 	   65536,
71 };
72 
73 static const long INVSQ_LOOKUP_IDel[64]={
74              716,     699,     684,     668,
75              654,     640,     626,     614,
76              600,     589,     576,     565,
77              554,     544,     533,     523,
78              513,     504,     495,     486,
79              477,     469,     461,     453,
80              445,     438,     430,     424,
81              417,     410,     403,     398,
82              391,     385,     379,     373,
83              368,     363,     357,     352,
84              347,     343,     337,     332,
85              328,     324,     319,     315,
86              311,     306,     303,     299,
87              294,     292,     287,     284,
88              280,     277,     273,     270,
89              267,     264,     260,     258,
90 };
91 
92 #define COS_LOOKUP_I_SHIFT 9
93 #define COS_LOOKUP_I_MASK 511
94 #define COS_LOOKUP_I_SZ 128
95 static const ogg_int32_t COS_LOOKUP_I[COS_LOOKUP_I_SZ+1]={
96 	   16384,   16379,   16364,   16340,
97 	   16305,   16261,   16207,   16143,
98 	   16069,   15986,   15893,   15791,
99 	   15679,   15557,   15426,   15286,
100 	   15137,   14978,   14811,   14635,
101 	   14449,   14256,   14053,   13842,
102 	   13623,   13395,   13160,   12916,
103 	   12665,   12406,   12140,   11866,
104 	   11585,   11297,   11003,   10702,
105 	   10394,   10080,    9760,    9434,
106 	    9102,    8765,    8423,    8076,
107 	    7723,    7366,    7005,    6639,
108 	    6270,    5897,    5520,    5139,
109 	    4756,    4370,    3981,    3590,
110 	    3196,    2801,    2404,    2006,
111 	    1606,    1205,     804,     402,
112 	       0,    -401,    -803,   -1204,
113 	   -1605,   -2005,   -2403,   -2800,
114 	   -3195,   -3589,   -3980,   -4369,
115 	   -4755,   -5138,   -5519,   -5896,
116 	   -6269,   -6638,   -7004,   -7365,
117 	   -7722,   -8075,   -8422,   -8764,
118 	   -9101,   -9433,   -9759,  -10079,
119 	  -10393,  -10701,  -11002,  -11296,
120 	  -11584,  -11865,  -12139,  -12405,
121 	  -12664,  -12915,  -13159,  -13394,
122 	  -13622,  -13841,  -14052,  -14255,
123 	  -14448,  -14634,  -14810,  -14977,
124 	  -15136,  -15285,  -15425,  -15556,
125 	  -15678,  -15790,  -15892,  -15985,
126 	  -16068,  -16142,  -16206,  -16260,
127 	  -16304,  -16339,  -16363,  -16378,
128 	  -16383,
129 };
130 
131 #endif
132 
133 
134 
135 
136 
137