Tristan Matthews | 0a329cc | 2013-07-17 13:20:14 -0400 | [diff] [blame] | 1 | /*********************************************************************** |
| 2 | ** |
| 3 | ** ITU-T G.722.1 (2005-05) - Fixed point implementation for main body and Annex C |
| 4 | ** > Software Release 2.1 (2008-06) |
| 5 | ** (Simple repackaging; no change from 2005-05 Release 2.0 code) |
| 6 | ** |
| 7 | ** © 2004 Polycom, Inc. |
| 8 | ** |
| 9 | ** All rights reserved. |
| 10 | ** |
| 11 | ***********************************************************************/ |
| 12 | |
| 13 | /*********************************************************************** |
| 14 | Filename: dct4_s.h |
| 15 | |
| 16 | Purpose: Contains tables used by dct4_s.c |
| 17 | |
| 18 | Design Notes: |
| 19 | |
| 20 | ***********************************************************************/ |
| 21 | |
| 22 | /*************************************************************************** |
| 23 | Include files |
| 24 | ***************************************************************************/ |
| 25 | |
| 26 | typedef struct |
| 27 | { |
| 28 | Word16 cosine; |
| 29 | Word16 minus_sine; |
| 30 | } cos_msin_t; |
| 31 | |
| 32 | /*************************************************************************** |
| 33 | The dct_core_s table was generated by the following code |
| 34 | |
| 35 | for(i=0;i<10;++i) |
| 36 | { |
| 37 | for(k=0;k<10;++k) |
| 38 | { |
| 39 | dct_core_s[i][k]=(short) (FTOI(((.9*32768.)*cos(3.1415926*(k+0.5)*(i+0.5)/10.)))); |
| 40 | } |
| 41 | } |
| 42 | ***************************************************************************/ |
| 43 | Word16 dct_core_s[10][10] = { |
| 44 | { 29400, 28676, 27246, 25145, 22425, 19153, 15409, 11286, 6885, 2314 }, |
| 45 | { 28676, 22425, 11286, -2314, -15409, -25145, -29400, -27246, -19153, -6885 }, |
| 46 | { 27246, 11286, -11286, -27246, -27246, -11286, 11286, 27246, 27246, 11286 }, |
| 47 | { 25145, -2314, -27246, -22425, 6885, 28676, 19153, -11286, -29400, -15409 }, |
| 48 | { 22425, -15409, -27246, 6885, 29400, 2314, -28676, -11286, 25145, 19153 }, |
| 49 | { 19153, -25145, -11286, 28676, 2314, -29400, 6885, 27246, -15409, -22425 }, |
| 50 | { 15409, -29400, 11286, 19153, -28676, 6885, 22425, -27246, 2314, 25145 }, |
| 51 | { 11286, -27246, 27246, -11286, -11286, 27246, -27246, 11286, 11286, -27246 }, |
| 52 | { 6885, -19153, 27246, -29400, 25145, -15409, 2314, 11286, -22425, 28676 }, |
| 53 | { 2314, -6885, 11286, -15409, 19153, -22425, 25145, -27246, 28676, -29400 } |
| 54 | }; |
| 55 | |
| 56 | Word16 syn_bias_7khz[DCT_LENGTH] = { |
| 57 | -4, 4, -5, -2, 0, -4, 6, 2, -2, -4, |
| 58 | -3, 3, 0, 0, -2, 4, 0, 0, 3, -6, |
| 59 | 8, 5, 4, 5, -8, 0, -2, 0, 0, -3, |
| 60 | 3, 0, 0, 0, 1, -1, -2, 0, 0, 2, |
| 61 | -2, -5, -2, 3, 2, -1, -1, -6, 3, 1, |
| 62 | -7, 4, 4, 0, 1, 4, 1, 0, 1, -5, |
| 63 | -1, 1, -6, 0, -1, -1, 3, 0, -2, 1, |
| 64 | 2, -4, 0, 9, 0, -3, 1, 1, 1, 0, |
| 65 | -3, -2, -1, -4, -2, 0, 5, 2, -3, 5, |
| 66 | 0, -2, 4, 4, 0, -6, -4, 2, 0, 0, |
| 67 | 0, -1, -1, -2, 0, 6, 1, 0, 0, -1, |
| 68 | 0, -4, -1, 0, -4, 1, -1, -5, 0, 1, |
| 69 | 2, 4, 0, -8, -4, 0, -2, -2, 2, 5, |
| 70 | -3, -1, 1, -4, 0, 0, 0, -1, -3, 0, |
| 71 | -5, -4, 0, -2, 0, 7, 1, 0, 5, -2, |
| 72 | -1, 2, 2, -2, 3, 7, -3, 4, 1, -4, |
| 73 | 0, 0, 3, -7, -5, 0, 0, 4, 0, -2, |
| 74 | -1, 0, -5, 0, 2, 0, 11, 5, -1, 0, |
| 75 | 2, 2, -2, -2, 5, 4, -3, 1, 0, -2, |
| 76 | 1, 3, 2, 0, 1, 0, 0, 0, 5, 6, |
| 77 | -2, -1, 0, 2, 3, 2, 0, -3, 4, 5, |
| 78 | 0, -1, 0, 3, 1, -2, -3, -2, -1, 2, |
| 79 | -1, -1, -2, -7, 4, 6, -5, -6, -3, -4, |
| 80 | 0, 2, -5, -2, 3, 0, 0, 0, 2, -2, |
| 81 | -4, 3, 3, 1, 0, 0, 4, -1, 8, 13, |
| 82 | 1, 2, 0, 2, 0, -1, 4, -3, 1, 0, |
| 83 | -1, 3, 0, 0, -5, 0, 6, 2, 4, 5, |
| 84 | 2, -1, -1, 3, 6, 1, 1, 2, -4, 0, |
| 85 | -1, -6, -2, -2, 2, 1, 2, 6, 2, 0, |
| 86 | -2, -2, 0, -1, 2, 0, 0, 3, -2, 1, |
| 87 | 3, 1, 2, -1, -2, 2, 2, -4, 0, 0, |
| 88 | -3, 0, -4, -3, 6, 7, 2, 2, 0, -3}; |
| 89 | |
| 90 | Word16 dither[DCT_LENGTH]= { |
| 91 | 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, |
| 92 | 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, |
| 93 | 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, |
| 94 | 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, |
| 95 | 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, |
| 96 | 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, |
| 97 | 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, |
| 98 | 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, |
| 99 | 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, |
| 100 | 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, |
| 101 | 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, |
| 102 | 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, |
| 103 | 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, |
| 104 | 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, |
| 105 | 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, |
| 106 | 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, |
| 107 | 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, |
| 108 | 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, |
| 109 | 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, |
| 110 | 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, |
| 111 | 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, |
| 112 | 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, |
| 113 | 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, |
| 114 | 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, |
| 115 | 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, |
| 116 | 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, |
| 117 | 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, |
| 118 | 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, |
| 119 | 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, |
| 120 | 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, |
| 121 | 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, |
| 122 | 1, 1, 1, 0, 1, 0, 0, 0, 1, 0}; |
| 123 | |
| 124 | Word16 max_dither[MAX_DCT_LENGTH]= { |
| 125 | 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, |
| 126 | 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, |
| 127 | 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, |
| 128 | 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, |
| 129 | 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, |
| 130 | 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, |
| 131 | 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, |
| 132 | 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, |
| 133 | 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, |
| 134 | 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, |
| 135 | 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, |
| 136 | 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, |
| 137 | 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, |
| 138 | 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, |
| 139 | 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, |
| 140 | 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, |
| 141 | 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, |
| 142 | 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, |
| 143 | 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, |
| 144 | 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, |
| 145 | 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, |
| 146 | 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, |
| 147 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, |
| 148 | 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, |
| 149 | 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, |
| 150 | 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, |
| 151 | 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, |
| 152 | 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, |
| 153 | 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, |
| 154 | 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, |
| 155 | 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, |
| 156 | 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, |
| 157 | 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, |
| 158 | 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, |
| 159 | 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, |
| 160 | 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, |
| 161 | 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, |
| 162 | 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, |
| 163 | 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, |
| 164 | 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, |
| 165 | 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, |
| 166 | 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, |
| 167 | 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, |
| 168 | 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, |
| 169 | 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, |
| 170 | 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, |
| 171 | 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, |
| 172 | 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, |
| 173 | 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, |
| 174 | 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, |
| 175 | 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, |
| 176 | 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, |
| 177 | 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, |
| 178 | 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, |
| 179 | 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, |
| 180 | 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, |
| 181 | 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, |
| 182 | 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, |
| 183 | 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, |
| 184 | 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, |
| 185 | 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, |
| 186 | 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, |
| 187 | 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, |
| 188 | 0, 1, 0, 1, 0, 1, 0, 0, 0, 0 |
| 189 | }; |
| 190 | |
| 191 | |
| 192 | /******************************************************************************** |
| 193 | The s_cos_min tables were generated by the following code: |
| 194 | double angle, scale; |
| 195 | int index; |
| 196 | |
| 197 | for (index = 0;index < length;index++) |
| 198 | { |
| 199 | angle = scale * ((double)index + 0.5); |
| 200 | table[index].cosine = (short) (FTOI((18427)* cos(angle))); |
| 201 | table[index].minus_sine = (short) (FTOI((18427)*(-sin(angle)))); |
| 202 | } |
| 203 | |
| 204 | |
| 205 | ********************************************************************************/ |
| 206 | |
| 207 | cos_msin_t s_cos_msin_2[DCT_LENGTH_DIV_32] = { |
| 208 | { 18413 , -723 } , |
| 209 | { 18299 , -2166 } , |
| 210 | { 18073 , -3595 } , |
| 211 | { 17735 , -5002 } , |
| 212 | { 17288 , -6378 } , |
| 213 | { 16734 , -7715 } , |
| 214 | { 16077 , -9004 } , |
| 215 | { 15321 , -10237 } , |
| 216 | { 14471 , -11408 } , |
| 217 | { 13531 , -12508 } |
| 218 | }; |
| 219 | cos_msin_t s_cos_msin_4[DCT_LENGTH_DIV_16] = { |
| 220 | { 18423 , -362 } , |
| 221 | { 18395 , -1085 } , |
| 222 | { 18338 , -1806 } , |
| 223 | { 18253 , -2525 } , |
| 224 | { 18140 , -3239 } , |
| 225 | { 17999 , -3949 } , |
| 226 | { 17830 , -4653 } , |
| 227 | { 17634 , -5349 } , |
| 228 | { 17410 , -6037 } , |
| 229 | { 17159 , -6716 } , |
| 230 | { 16883 , -7385 } , |
| 231 | { 16580 , -8042 } , |
| 232 | { 16251 , -8686 } , |
| 233 | { 15898 , -9318 } , |
| 234 | { 15520 , -9935 } , |
| 235 | { 15118 , -10536 } , |
| 236 | { 14692 , -11122 } , |
| 237 | { 14244 , -11690 } , |
| 238 | { 13774 , -12240 } , |
| 239 | { 13283 , -12772 } |
| 240 | }; |
| 241 | cos_msin_t s_cos_msin_8[DCT_LENGTH_DIV_8] = { |
| 242 | { 18426 , -181 } , |
| 243 | { 18419 , -543 } , |
| 244 | { 18405 , -904 } , |
| 245 | { 18384 , -1265 } , |
| 246 | { 18355 , -1626 } , |
| 247 | { 18320 , -1986 } , |
| 248 | { 18277 , -2345 } , |
| 249 | { 18228 , -2704 } , |
| 250 | { 18171 , -3061 } , |
| 251 | { 18107 , -3417 } , |
| 252 | { 18037 , -3772 } , |
| 253 | { 17959 , -4126 } , |
| 254 | { 17875 , -4477 } , |
| 255 | { 17783 , -4827 } , |
| 256 | { 17685 , -5176 } , |
| 257 | { 17580 , -5522 } , |
| 258 | { 17468 , -5866 } , |
| 259 | { 17350 , -6208 } , |
| 260 | { 17225 , -6547 } , |
| 261 | { 17093 , -6884 } , |
| 262 | { 16954 , -7219 } , |
| 263 | { 16809 , -7550 } , |
| 264 | { 16658 , -7879 } , |
| 265 | { 16500 , -8204 } , |
| 266 | { 16336 , -8526 } , |
| 267 | { 16165 , -8846 } , |
| 268 | { 15988 , -9161 } , |
| 269 | { 15805 , -9473 } , |
| 270 | { 15616 , -9782 } , |
| 271 | { 15421 , -10087 } , |
| 272 | { 15220 , -10387 } , |
| 273 | { 15013 , -10684 } , |
| 274 | { 14801 , -10977 } , |
| 275 | { 14582 , -11265 } , |
| 276 | { 14358 , -11550 } , |
| 277 | { 14129 , -11829 } , |
| 278 | { 13894 , -12104 } , |
| 279 | { 13654 , -12375 } , |
| 280 | { 13408 , -12641 } , |
| 281 | { 13157 , -12901 } |
| 282 | }; |
| 283 | cos_msin_t s_cos_msin_16[DCT_LENGTH_DIV_4] = { |
| 284 | { 18427 , -90 } , |
| 285 | { 18425 , -271 } , |
| 286 | { 18421 , -452 } , |
| 287 | { 18416 , -633 } , |
| 288 | { 18409 , -814 } , |
| 289 | { 18400 , -995 } , |
| 290 | { 18389 , -1175 } , |
| 291 | { 18377 , -1356 } , |
| 292 | { 18363 , -1536 } , |
| 293 | { 18347 , -1716 } , |
| 294 | { 18329 , -1896 } , |
| 295 | { 18310 , -2076 } , |
| 296 | { 18288 , -2256 } , |
| 297 | { 18265 , -2435 } , |
| 298 | { 18241 , -2614 } , |
| 299 | { 18214 , -2793 } , |
| 300 | { 18186 , -2972 } , |
| 301 | { 18156 , -3150 } , |
| 302 | { 18124 , -3328 } , |
| 303 | { 18090 , -3506 } , |
| 304 | { 18055 , -3684 } , |
| 305 | { 18018 , -3861 } , |
| 306 | { 17979 , -4037 } , |
| 307 | { 17939 , -4214 } , |
| 308 | { 17897 , -4390 } , |
| 309 | { 17853 , -4565 } , |
| 310 | { 17807 , -4740 } , |
| 311 | { 17760 , -4915 } , |
| 312 | { 17710 , -5089 } , |
| 313 | { 17660 , -5262 } , |
| 314 | { 17607 , -5436 } , |
| 315 | { 17553 , -5608 } , |
| 316 | { 17497 , -5780 } , |
| 317 | { 17439 , -5952 } , |
| 318 | { 17380 , -6123 } , |
| 319 | { 17319 , -6293 } , |
| 320 | { 17257 , -6463 } , |
| 321 | { 17192 , -6632 } , |
| 322 | { 17126 , -6800 } , |
| 323 | { 17059 , -6968 } , |
| 324 | { 16990 , -7135 } , |
| 325 | { 16919 , -7302 } , |
| 326 | { 16846 , -7467 } , |
| 327 | { 16772 , -7632 } , |
| 328 | { 16696 , -7797 } , |
| 329 | { 16619 , -7960 } , |
| 330 | { 16540 , -8123 } , |
| 331 | { 16459 , -8285 } , |
| 332 | { 16377 , -8446 } , |
| 333 | { 16294 , -8607 } , |
| 334 | { 16208 , -8766 } , |
| 335 | { 16121 , -8925 } , |
| 336 | { 16033 , -9083 } , |
| 337 | { 15943 , -9240 } , |
| 338 | { 15852 , -9396 } , |
| 339 | { 15759 , -9551 } , |
| 340 | { 15664 , -9705 } , |
| 341 | { 15568 , -9858 } , |
| 342 | { 15471 , -10011 } , |
| 343 | { 15372 , -10162 } , |
| 344 | { 15271 , -10313 } , |
| 345 | { 15169 , -10462 } , |
| 346 | { 15066 , -10610 } , |
| 347 | { 14961 , -10758 } , |
| 348 | { 14854 , -10904 } , |
| 349 | { 14747 , -11049 } , |
| 350 | { 14637 , -11194 } , |
| 351 | { 14527 , -11337 } , |
| 352 | { 14415 , -11479 } , |
| 353 | { 14301 , -11620 } , |
| 354 | { 14187 , -11760 } , |
| 355 | { 14071 , -11898 } , |
| 356 | { 13953 , -12036 } , |
| 357 | { 13834 , -12172 } , |
| 358 | { 13714 , -12308 } , |
| 359 | { 13593 , -12442 } , |
| 360 | { 13470 , -12575 } , |
| 361 | { 13346 , -12706 } , |
| 362 | { 13220 , -12837 } , |
| 363 | { 13094 , -12966 } |
| 364 | }; |
| 365 | cos_msin_t s_cos_msin_32[DCT_LENGTH_DIV_2] = { |
| 366 | { 18427 , -45 } , |
| 367 | { 18427 , -136 } , |
| 368 | { 18426 , -226 } , |
| 369 | { 18424 , -317 } , |
| 370 | { 18423 , -407 } , |
| 371 | { 18420 , -497 } , |
| 372 | { 18418 , -588 } , |
| 373 | { 18415 , -678 } , |
| 374 | { 18411 , -769 } , |
| 375 | { 18407 , -859 } , |
| 376 | { 18403 , -949 } , |
| 377 | { 18398 , -1040 } , |
| 378 | { 18392 , -1130 } , |
| 379 | { 18387 , -1220 } , |
| 380 | { 18380 , -1310 } , |
| 381 | { 18374 , -1401 } , |
| 382 | { 18367 , -1491 } , |
| 383 | { 18359 , -1581 } , |
| 384 | { 18351 , -1671 } , |
| 385 | { 18343 , -1761 } , |
| 386 | { 18334 , -1851 } , |
| 387 | { 18324 , -1941 } , |
| 388 | { 18315 , -2031 } , |
| 389 | { 18305 , -2121 } , |
| 390 | { 18294 , -2211 } , |
| 391 | { 18283 , -2301 } , |
| 392 | { 18271 , -2390 } , |
| 393 | { 18259 , -2480 } , |
| 394 | { 18247 , -2570 } , |
| 395 | { 18234 , -2659 } , |
| 396 | { 18221 , -2749 } , |
| 397 | { 18207 , -2838 } , |
| 398 | { 18193 , -2927 } , |
| 399 | { 18178 , -3017 } , |
| 400 | { 18163 , -3106 } , |
| 401 | { 18148 , -3195 } , |
| 402 | { 18132 , -3284 } , |
| 403 | { 18116 , -3373 } , |
| 404 | { 18099 , -3462 } , |
| 405 | { 18082 , -3551 } , |
| 406 | { 18064 , -3639 } , |
| 407 | { 18046 , -3728 } , |
| 408 | { 18027 , -3816 } , |
| 409 | { 18009 , -3905 } , |
| 410 | { 17989 , -3993 } , |
| 411 | { 17969 , -4081 } , |
| 412 | { 17949 , -4170 } , |
| 413 | { 17928 , -4258 } , |
| 414 | { 17907 , -4346 } , |
| 415 | { 17886 , -4434 } , |
| 416 | { 17864 , -4521 } , |
| 417 | { 17841 , -4609 } , |
| 418 | { 17818 , -4696 } , |
| 419 | { 17795 , -4784 } , |
| 420 | { 17772 , -4871 } , |
| 421 | { 17747 , -4958 } , |
| 422 | { 17723 , -5045 } , |
| 423 | { 17698 , -5132 } , |
| 424 | { 17672 , -5219 } , |
| 425 | { 17647 , -5306 } , |
| 426 | { 17620 , -5392 } , |
| 427 | { 17594 , -5479 } , |
| 428 | { 17567 , -5565 } , |
| 429 | { 17539 , -5651 } , |
| 430 | { 17511 , -5737 } , |
| 431 | { 17483 , -5823 } , |
| 432 | { 17454 , -5909 } , |
| 433 | { 17425 , -5994 } , |
| 434 | { 17395 , -6080 } , |
| 435 | { 17365 , -6165 } , |
| 436 | { 17335 , -6250 } , |
| 437 | { 17304 , -6335 } , |
| 438 | { 17272 , -6420 } , |
| 439 | { 17241 , -6505 } , |
| 440 | { 17208 , -6590 } , |
| 441 | { 17176 , -6674 } , |
| 442 | { 17143 , -6758 } , |
| 443 | { 17110 , -6842 } , |
| 444 | { 17076 , -6926 } , |
| 445 | { 17042 , -7010 } , |
| 446 | { 17007 , -7093 } , |
| 447 | { 16972 , -7177 } , |
| 448 | { 16937 , -7260 } , |
| 449 | { 16901 , -7343 } , |
| 450 | { 16864 , -7426 } , |
| 451 | { 16828 , -7509 } , |
| 452 | { 16791 , -7591 } , |
| 453 | { 16753 , -7674 } , |
| 454 | { 16715 , -7756 } , |
| 455 | { 16677 , -7838 } , |
| 456 | { 16638 , -7919 } , |
| 457 | { 16599 , -8001 } , |
| 458 | { 16560 , -8082 } , |
| 459 | { 16520 , -8164 } , |
| 460 | { 16480 , -8245 } , |
| 461 | { 16439 , -8325 } , |
| 462 | { 16398 , -8406 } , |
| 463 | { 16357 , -8486 } , |
| 464 | { 16315 , -8567 } , |
| 465 | { 16272 , -8647 } , |
| 466 | { 16230 , -8726 } , |
| 467 | { 16187 , -8806 } , |
| 468 | { 16143 , -8885 } , |
| 469 | { 16100 , -8964 } , |
| 470 | { 16055 , -9043 } , |
| 471 | { 16011 , -9122 } , |
| 472 | { 15966 , -9200 } , |
| 473 | { 15920 , -9279 } , |
| 474 | { 15875 , -9357 } , |
| 475 | { 15829 , -9435 } , |
| 476 | { 15782 , -9512 } , |
| 477 | { 15735 , -9589 } , |
| 478 | { 15688 , -9667 } , |
| 479 | { 15640 , -9744 } , |
| 480 | { 15592 , -9820 } , |
| 481 | { 15544 , -9897 } , |
| 482 | { 15495 , -9973 } , |
| 483 | { 15446 , -10049 } , |
| 484 | { 15396 , -10124 } , |
| 485 | { 15347 , -10200 } , |
| 486 | { 15296 , -10275 } , |
| 487 | { 15246 , -10350 } , |
| 488 | { 15195 , -10425 } , |
| 489 | { 15143 , -10499 } , |
| 490 | { 15092 , -10573 } , |
| 491 | { 15040 , -10647 } , |
| 492 | { 14987 , -10721 } , |
| 493 | { 14934 , -10794 } , |
| 494 | { 14881 , -10868 } , |
| 495 | { 14828 , -10941 } , |
| 496 | { 14774 , -11013 } , |
| 497 | { 14719 , -11086 } , |
| 498 | { 14665 , -11158 } , |
| 499 | { 14610 , -11230 } , |
| 500 | { 14555 , -11301 } , |
| 501 | { 14499 , -11372 } , |
| 502 | { 14443 , -11444 } , |
| 503 | { 14387 , -11514 } , |
| 504 | { 14330 , -11585 } , |
| 505 | { 14273 , -11655 } , |
| 506 | { 14216 , -11725 } , |
| 507 | { 14158 , -11795 } , |
| 508 | { 14100 , -11864 } , |
| 509 | { 14041 , -11933 } , |
| 510 | { 13983 , -12002 } , |
| 511 | { 13924 , -12070 } , |
| 512 | { 13864 , -12138 } , |
| 513 | { 13804 , -12206 } , |
| 514 | { 13744 , -12274 } , |
| 515 | { 13684 , -12341 } , |
| 516 | { 13623 , -12408 } , |
| 517 | { 13562 , -12475 } , |
| 518 | { 13501 , -12541 } , |
| 519 | { 13439 , -12608 } , |
| 520 | { 13377 , -12673 } , |
| 521 | { 13314 , -12739 } , |
| 522 | { 13252 , -12804 } , |
| 523 | { 13189 , -12869 } , |
| 524 | { 13125 , -12934 } , |
| 525 | { 13062 , -12998 } |
| 526 | }; |
| 527 | cos_msin_t s_cos_msin_64[DCT_LENGTH] = { |
| 528 | {18426, -21}, |
| 529 | {18426, -66}, |
| 530 | {18426, -110}, |
| 531 | {18426, -154}, |
| 532 | {18425, -198}, |
| 533 | {18425, -242}, |
| 534 | {18424, -286}, |
| 535 | {18424, -331}, |
| 536 | {18423, -374}, |
| 537 | {18421, -419}, |
| 538 | {18421, -463}, |
| 539 | {18419, -507}, |
| 540 | {18418, -552}, |
| 541 | {18417, -595}, |
| 542 | {18415, -639}, |
| 543 | {18414, -684}, |
| 544 | {18412, -728}, |
| 545 | {18410, -772}, |
| 546 | {18408, -816}, |
| 547 | {18406, -860}, |
| 548 | {18404, -904}, |
| 549 | {18402, -949}, |
| 550 | {18400, -992}, |
| 551 | {18397, -1037}, |
| 552 | {18394, -1081}, |
| 553 | {18392, -1125}, |
| 554 | {18389, -1169}, |
| 555 | {18387, -1213}, |
| 556 | {18384, -1257}, |
| 557 | {18380, -1301}, |
| 558 | {18378, -1345}, |
| 559 | {18374, -1389}, |
| 560 | {18371, -1433}, |
| 561 | {18367, -1477}, |
| 562 | {18364, -1521}, |
| 563 | {18360, -1566}, |
| 564 | {18356, -1609}, |
| 565 | {18352, -1653}, |
| 566 | {18348, -1697}, |
| 567 | {18344, -1742}, |
| 568 | {18339, -1785}, |
| 569 | {18335, -1829}, |
| 570 | {18331, -1873}, |
| 571 | {18326, -1917}, |
| 572 | {18322, -1961}, |
| 573 | {18317, -2005}, |
| 574 | {18312, -2049}, |
| 575 | {18307, -2092}, |
| 576 | {18302, -2137}, |
| 577 | {18297, -2180}, |
| 578 | {18292, -2224}, |
| 579 | {18286, -2268}, |
| 580 | {18281, -2312}, |
| 581 | {18275, -2356}, |
| 582 | {18270, -2399}, |
| 583 | {18264, -2443}, |
| 584 | {18258, -2487}, |
| 585 | {18252, -2531}, |
| 586 | {18246, -2574}, |
| 587 | {18240, -2618}, |
| 588 | {18233, -2662}, |
| 589 | {18227, -2706}, |
| 590 | {18220, -2749}, |
| 591 | {18214, -2793}, |
| 592 | {18207, -2836}, |
| 593 | {18200, -2880}, |
| 594 | {18193, -2924}, |
| 595 | {18186, -2967}, |
| 596 | {18179, -3011}, |
| 597 | {18172, -3055}, |
| 598 | {18164, -3098}, |
| 599 | {18157, -3142}, |
| 600 | {18149, -3185}, |
| 601 | {18141, -3229}, |
| 602 | {18134, -3272}, |
| 603 | {18126, -3316}, |
| 604 | {18118, -3359}, |
| 605 | {18109, -3403}, |
| 606 | {18101, -3446}, |
| 607 | {18094, -3489}, |
| 608 | {18085, -3533}, |
| 609 | {18076, -3576}, |
| 610 | {18068, -3619}, |
| 611 | {18059, -3663}, |
| 612 | {18050, -3706}, |
| 613 | {18041, -3749}, |
| 614 | {18032, -3792}, |
| 615 | {18023, -3836}, |
| 616 | {18014, -3879}, |
| 617 | {18005, -3922}, |
| 618 | {17995, -3965}, |
| 619 | {17986, -4008}, |
| 620 | {17975, -4051}, |
| 621 | {17966, -4094}, |
| 622 | {17956, -4138}, |
| 623 | {17946, -4180}, |
| 624 | {17936, -4224}, |
| 625 | {17926, -4266}, |
| 626 | {17916, -4309}, |
| 627 | {17905, -4353}, |
| 628 | {17895, -4395}, |
| 629 | {17884, -4438}, |
| 630 | {17874, -4481}, |
| 631 | {17863, -4524}, |
| 632 | {17852, -4567}, |
| 633 | {17841, -4609}, |
| 634 | {17830, -4652}, |
| 635 | {17819, -4695}, |
| 636 | {17807, -4738}, |
| 637 | {17796, -4780}, |
| 638 | {17784, -4823}, |
| 639 | {17772, -4865}, |
| 640 | {17761, -4908}, |
| 641 | {17749, -4951}, |
| 642 | {17738, -4993}, |
| 643 | {17725, -5036}, |
| 644 | {17713, -5078}, |
| 645 | {17701, -5121}, |
| 646 | {17689, -5163}, |
| 647 | {17676, -5205}, |
| 648 | {17664, -5248}, |
| 649 | {17651, -5290}, |
| 650 | {17638, -5333}, |
| 651 | {17626, -5375}, |
| 652 | {17613, -5417}, |
| 653 | {17599, -5459}, |
| 654 | {17586, -5501}, |
| 655 | {17573, -5544}, |
| 656 | {17560, -5586}, |
| 657 | {17546, -5627}, |
| 658 | {17533, -5670}, |
| 659 | {17519, -5712}, |
| 660 | {17505, -5753}, |
| 661 | {17492, -5795}, |
| 662 | {17478, -5837}, |
| 663 | {17464, -5879}, |
| 664 | {17450, -5921}, |
| 665 | {17435, -5963}, |
| 666 | {17421, -6005}, |
| 667 | {17406, -6046}, |
| 668 | {17392, -6088}, |
| 669 | {17377, -6130}, |
| 670 | {17363, -6172}, |
| 671 | {17348, -6213}, |
| 672 | {17333, -6254}, |
| 673 | {17318, -6296}, |
| 674 | {17303, -6338}, |
| 675 | {17288, -6379}, |
| 676 | {17272, -6420}, |
| 677 | {17257, -6462}, |
| 678 | {17241, -6503}, |
| 679 | {17225, -6545}, |
| 680 | {17210, -6586}, |
| 681 | {17194, -6627}, |
| 682 | {17178, -6668}, |
| 683 | {17162, -6709}, |
| 684 | {17145, -6750}, |
| 685 | {17130, -6791}, |
| 686 | {17113, -6832}, |
| 687 | {17097, -6874}, |
| 688 | {17080, -6915}, |
| 689 | {17064, -6956}, |
| 690 | {17047, -6996}, |
| 691 | {17030, -7037}, |
| 692 | {17013, -7078}, |
| 693 | {16996, -7119}, |
| 694 | {16979, -7159}, |
| 695 | {16962, -7200}, |
| 696 | {16945, -7241}, |
| 697 | {16927, -7281}, |
| 698 | {16910, -7322}, |
| 699 | {16892, -7362}, |
| 700 | {16874, -7403}, |
| 701 | {16856, -7444}, |
| 702 | {16838, -7484}, |
| 703 | {16821, -7524}, |
| 704 | {16802, -7564}, |
| 705 | {16784, -7605}, |
| 706 | {16766, -7645}, |
| 707 | {16748, -7685}, |
| 708 | {16729, -7725}, |
| 709 | {16711, -7765}, |
| 710 | {16692, -7805}, |
| 711 | {16674, -7845}, |
| 712 | {16654, -7885}, |
| 713 | {16635, -7925}, |
| 714 | {16616, -7964}, |
| 715 | {16597, -8004}, |
| 716 | {16578, -8044}, |
| 717 | {16559, -8084}, |
| 718 | {16539, -8124}, |
| 719 | {16520, -8164}, |
| 720 | {16500, -8203}, |
| 721 | {16480, -8242}, |
| 722 | {16461, -8282}, |
| 723 | {16441, -8322}, |
| 724 | {16421, -8361}, |
| 725 | {16401, -8400}, |
| 726 | {16380, -8440}, |
| 727 | {16360, -8479}, |
| 728 | {16340, -8518}, |
| 729 | {16319, -8557}, |
| 730 | {16299, -8597}, |
| 731 | {16278, -8635}, |
| 732 | {16257, -8674}, |
| 733 | {16237, -8713}, |
| 734 | {16215, -8752}, |
| 735 | {16195, -8791}, |
| 736 | {16173, -8829}, |
| 737 | {16152, -8868}, |
| 738 | {16131, -8907}, |
| 739 | {16110, -8946}, |
| 740 | {16088, -8985}, |
| 741 | {16067, -9023}, |
| 742 | {16045, -9061}, |
| 743 | {16023, -9100}, |
| 744 | {16001, -9138}, |
| 745 | {15979, -9176}, |
| 746 | {15957, -9215}, |
| 747 | {15935, -9253}, |
| 748 | {15913, -9291}, |
| 749 | {15891, -9329}, |
| 750 | {15868, -9367}, |
| 751 | {15846, -9405}, |
| 752 | {15823, -9443}, |
| 753 | {15800, -9481}, |
| 754 | {15778, -9519}, |
| 755 | {15755, -9557}, |
| 756 | {15732, -9595}, |
| 757 | {15709, -9632}, |
| 758 | {15686, -9670}, |
| 759 | {15662, -9708}, |
| 760 | {15639, -9745}, |
| 761 | {15615, -9782}, |
| 762 | {15592, -9820}, |
| 763 | {15569, -9857}, |
| 764 | {15544, -9894}, |
| 765 | {15521, -9932}, |
| 766 | {15497, -9969}, |
| 767 | {15473, -10006}, |
| 768 | {15449, -10043}, |
| 769 | {15425, -10080}, |
| 770 | {15401, -10117}, |
| 771 | {15377, -10154}, |
| 772 | {15352, -10191}, |
| 773 | {15327, -10227}, |
| 774 | {15303, -10264}, |
| 775 | {15278, -10301}, |
| 776 | {15254, -10337}, |
| 777 | {15229, -10374}, |
| 778 | {15204, -10411}, |
| 779 | {15180, -10447}, |
| 780 | {15154, -10483}, |
| 781 | {15129, -10519}, |
| 782 | {15104, -10556}, |
| 783 | {15078, -10592}, |
| 784 | {15053, -10628}, |
| 785 | {15027, -10664}, |
| 786 | {15002, -10700}, |
| 787 | {14976, -10736}, |
| 788 | {14950, -10772}, |
| 789 | {14924, -10808}, |
| 790 | {14898, -10844}, |
| 791 | {14872, -10879}, |
| 792 | {14846, -10915}, |
| 793 | {14820, -10950}, |
| 794 | {14794, -10985}, |
| 795 | {14767, -11021}, |
| 796 | {14741, -11056}, |
| 797 | {14714, -11092}, |
| 798 | {14687, -11127}, |
| 799 | {14661, -11162}, |
| 800 | {14635, -11197}, |
| 801 | {14607, -11232}, |
| 802 | {14581, -11267}, |
| 803 | {14554, -11302}, |
| 804 | {14526, -11337}, |
| 805 | {14499, -11372}, |
| 806 | {14472, -11407}, |
| 807 | {14444, -11441}, |
| 808 | {14417, -11476}, |
| 809 | {14389, -11511}, |
| 810 | {14362, -11545}, |
| 811 | {14334, -11579}, |
| 812 | {14306, -11614}, |
| 813 | {14278, -11648}, |
| 814 | {14251, -11682}, |
| 815 | {14222, -11716}, |
| 816 | {14194, -11750}, |
| 817 | {14166, -11784}, |
| 818 | {14137, -11818}, |
| 819 | {14109, -11852}, |
| 820 | {14081, -11886}, |
| 821 | {14053, -11919}, |
| 822 | {14023, -11953}, |
| 823 | {13995, -11987}, |
| 824 | {13966, -12020}, |
| 825 | {13937, -12054}, |
| 826 | {13909, -12087}, |
| 827 | {13879, -12120}, |
| 828 | {13851, -12153}, |
| 829 | {13821, -12187}, |
| 830 | {13792, -12220}, |
| 831 | {13763, -12253}, |
| 832 | {13733, -12286}, |
| 833 | {13704, -12319}, |
| 834 | {13674, -12351}, |
| 835 | {13645, -12385}, |
| 836 | {13615, -12417}, |
| 837 | {13585, -12450}, |
| 838 | {13555, -12482}, |
| 839 | {13525, -12514}, |
| 840 | {13495, -12546}, |
| 841 | {13465, -12579}, |
| 842 | {13435, -12611}, |
| 843 | {13405, -12644}, |
| 844 | {13374, -12676}, |
| 845 | {13345, -12708}, |
| 846 | {13314, -12739}, |
| 847 | {13283, -12772} |
| 848 | }; |
| 849 | |
| 850 | |
| 851 | |
| 852 | cos_msin_t *s_cos_msin_table[] = {s_cos_msin_2, s_cos_msin_4, |
| 853 | s_cos_msin_8, s_cos_msin_16, |
| 854 | s_cos_msin_32, s_cos_msin_64 |
| 855 | }; |
| 856 | |