857 lines
23 KiB
C
857 lines
23 KiB
C
/***********************************************************************
|
|
**
|
|
** ITU-T G.722.1 (2005-05) - Fixed point implementation for main body and Annex C
|
|
** > Software Release 2.1 (2008-06)
|
|
** (Simple repackaging; no change from 2005-05 Release 2.0 code)
|
|
**
|
|
** © 2004 Polycom, Inc.
|
|
**
|
|
** All rights reserved.
|
|
**
|
|
***********************************************************************/
|
|
|
|
/***********************************************************************
|
|
Filename: dct4_s.h
|
|
|
|
Purpose: Contains tables used by dct4_s.c
|
|
|
|
Design Notes:
|
|
|
|
***********************************************************************/
|
|
|
|
/***************************************************************************
|
|
Include files
|
|
***************************************************************************/
|
|
|
|
typedef struct
|
|
{
|
|
Word16 cosine;
|
|
Word16 minus_sine;
|
|
} cos_msin_t;
|
|
|
|
/***************************************************************************
|
|
The dct_core_s table was generated by the following code
|
|
|
|
for(i=0;i<10;++i)
|
|
{
|
|
for(k=0;k<10;++k)
|
|
{
|
|
dct_core_s[i][k]=(short) (FTOI(((.9*32768.)*cos(3.1415926*(k+0.5)*(i+0.5)/10.))));
|
|
}
|
|
}
|
|
***************************************************************************/
|
|
Word16 dct_core_s[10][10] = {
|
|
{ 29400, 28676, 27246, 25145, 22425, 19153, 15409, 11286, 6885, 2314 },
|
|
{ 28676, 22425, 11286, -2314, -15409, -25145, -29400, -27246, -19153, -6885 },
|
|
{ 27246, 11286, -11286, -27246, -27246, -11286, 11286, 27246, 27246, 11286 },
|
|
{ 25145, -2314, -27246, -22425, 6885, 28676, 19153, -11286, -29400, -15409 },
|
|
{ 22425, -15409, -27246, 6885, 29400, 2314, -28676, -11286, 25145, 19153 },
|
|
{ 19153, -25145, -11286, 28676, 2314, -29400, 6885, 27246, -15409, -22425 },
|
|
{ 15409, -29400, 11286, 19153, -28676, 6885, 22425, -27246, 2314, 25145 },
|
|
{ 11286, -27246, 27246, -11286, -11286, 27246, -27246, 11286, 11286, -27246 },
|
|
{ 6885, -19153, 27246, -29400, 25145, -15409, 2314, 11286, -22425, 28676 },
|
|
{ 2314, -6885, 11286, -15409, 19153, -22425, 25145, -27246, 28676, -29400 }
|
|
};
|
|
|
|
Word16 syn_bias_7khz[DCT_LENGTH] = {
|
|
-4, 4, -5, -2, 0, -4, 6, 2, -2, -4,
|
|
-3, 3, 0, 0, -2, 4, 0, 0, 3, -6,
|
|
8, 5, 4, 5, -8, 0, -2, 0, 0, -3,
|
|
3, 0, 0, 0, 1, -1, -2, 0, 0, 2,
|
|
-2, -5, -2, 3, 2, -1, -1, -6, 3, 1,
|
|
-7, 4, 4, 0, 1, 4, 1, 0, 1, -5,
|
|
-1, 1, -6, 0, -1, -1, 3, 0, -2, 1,
|
|
2, -4, 0, 9, 0, -3, 1, 1, 1, 0,
|
|
-3, -2, -1, -4, -2, 0, 5, 2, -3, 5,
|
|
0, -2, 4, 4, 0, -6, -4, 2, 0, 0,
|
|
0, -1, -1, -2, 0, 6, 1, 0, 0, -1,
|
|
0, -4, -1, 0, -4, 1, -1, -5, 0, 1,
|
|
2, 4, 0, -8, -4, 0, -2, -2, 2, 5,
|
|
-3, -1, 1, -4, 0, 0, 0, -1, -3, 0,
|
|
-5, -4, 0, -2, 0, 7, 1, 0, 5, -2,
|
|
-1, 2, 2, -2, 3, 7, -3, 4, 1, -4,
|
|
0, 0, 3, -7, -5, 0, 0, 4, 0, -2,
|
|
-1, 0, -5, 0, 2, 0, 11, 5, -1, 0,
|
|
2, 2, -2, -2, 5, 4, -3, 1, 0, -2,
|
|
1, 3, 2, 0, 1, 0, 0, 0, 5, 6,
|
|
-2, -1, 0, 2, 3, 2, 0, -3, 4, 5,
|
|
0, -1, 0, 3, 1, -2, -3, -2, -1, 2,
|
|
-1, -1, -2, -7, 4, 6, -5, -6, -3, -4,
|
|
0, 2, -5, -2, 3, 0, 0, 0, 2, -2,
|
|
-4, 3, 3, 1, 0, 0, 4, -1, 8, 13,
|
|
1, 2, 0, 2, 0, -1, 4, -3, 1, 0,
|
|
-1, 3, 0, 0, -5, 0, 6, 2, 4, 5,
|
|
2, -1, -1, 3, 6, 1, 1, 2, -4, 0,
|
|
-1, -6, -2, -2, 2, 1, 2, 6, 2, 0,
|
|
-2, -2, 0, -1, 2, 0, 0, 3, -2, 1,
|
|
3, 1, 2, -1, -2, 2, 2, -4, 0, 0,
|
|
-3, 0, -4, -3, 6, 7, 2, 2, 0, -3};
|
|
|
|
Word16 dither[DCT_LENGTH]= {
|
|
1, 0, 0, 0, 1, 0, 0, 1, 1, 1,
|
|
1, 0, 0, 0, 1, 1, 1, 1, 1, 0,
|
|
0, 1, 1, 1, 0, 1, 1, 0, 0, 0,
|
|
1, 0, 0, 1, 0, 1, 0, 0, 1, 0,
|
|
1, 0, 0, 0, 1, 0, 1, 0, 0, 0,
|
|
1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
|
|
0, 0, 1, 0, 0, 0, 1, 0, 0, 1,
|
|
1, 1, 1, 1, 1, 0, 1, 0, 0, 1,
|
|
1, 0, 0, 1, 0, 0, 0, 1, 0, 1,
|
|
0, 0, 1, 1, 0, 1, 0, 1, 1, 1,
|
|
1, 0, 0, 0, 0, 1, 1, 1, 1, 1,
|
|
0, 0, 0, 1, 0, 1, 0, 0, 0, 1,
|
|
1, 1, 0, 0, 1, 1, 1, 1, 1, 0,
|
|
0, 1, 1, 1, 1, 0, 1, 1, 1, 0,
|
|
1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
|
|
1, 0, 1, 1, 1, 1, 0, 0, 0, 0,
|
|
1, 1, 0, 1, 0, 0, 1, 0, 0, 1,
|
|
0, 0, 0, 1, 1, 0, 0, 1, 1, 1,
|
|
1, 0, 0, 0, 0, 0, 1, 1, 1, 1,
|
|
1, 0, 0, 1, 1, 0, 1, 1, 0, 0,
|
|
1, 1, 1, 0, 1, 1, 0, 1, 0, 1,
|
|
0, 0, 1, 1, 1, 1, 1, 1, 0, 1,
|
|
0, 1, 1, 1, 1, 0, 1, 1, 1, 0,
|
|
1, 1, 1, 0, 1, 1, 1, 0, 1, 0,
|
|
1, 1, 0, 0, 1, 0, 0, 1, 0, 1,
|
|
0, 1, 1, 0, 1, 0, 1, 0, 1, 1,
|
|
1, 0, 1, 0, 1, 0, 1, 1, 1, 1,
|
|
0, 1, 0, 0, 0, 1, 0, 0, 0, 1,
|
|
1, 0, 0, 0, 1, 0, 0, 1, 0, 1,
|
|
1, 0, 1, 1, 0, 0, 1, 1, 0, 1,
|
|
1, 0, 1, 1, 1, 1, 1, 1, 0, 1,
|
|
1, 1, 1, 0, 1, 0, 0, 0, 1, 0};
|
|
|
|
Word16 max_dither[MAX_DCT_LENGTH]= {
|
|
1, 0, 1, 0, 1, 1, 0, 1, 0, 1,
|
|
1, 1, 0, 0, 0, 0, 0, 1, 1, 1,
|
|
1, 1, 1, 0, 1, 1, 0, 0, 0, 1,
|
|
0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
|
|
1, 1, 1, 0, 1, 0, 1, 1, 1, 1,
|
|
0, 1, 0, 1, 1, 1, 1, 1, 1, 0,
|
|
1, 0, 1, 1, 0, 1, 0, 0, 0, 1,
|
|
0, 1, 1, 1, 1, 1, 0, 1, 1, 0,
|
|
0, 0, 1, 1, 0, 0, 0, 1, 1, 1,
|
|
1, 0, 1, 1, 1, 1, 1, 0, 0, 0,
|
|
1, 0, 1, 0, 1, 0, 0, 0, 1, 1,
|
|
0, 1, 1, 1, 1, 1, 1, 0, 1, 0,
|
|
0, 0, 1, 0, 1, 0, 0, 0, 1, 0,
|
|
0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
|
|
1, 0, 0, 1, 0, 1, 0, 0, 0, 1,
|
|
0, 1, 0, 0, 1, 1, 1, 1, 0, 1,
|
|
1, 0, 0, 0, 1, 1, 0, 1, 0, 1,
|
|
0, 1, 0, 1, 0, 1, 1, 1, 0, 1,
|
|
1, 0, 0, 1, 1, 1, 1, 0, 1, 1,
|
|
1, 1, 1, 0, 1, 1, 0, 0, 0, 0,
|
|
1, 0, 1, 0, 0, 0, 0, 1, 1, 0,
|
|
1, 1, 0, 0, 0, 0, 1, 0, 0, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
|
|
0, 0, 1, 1, 1, 0, 1, 1, 1, 0,
|
|
0, 1, 1, 1, 1, 1, 1, 1, 0, 0,
|
|
1, 1, 1, 1, 1, 1, 0, 1, 1, 1,
|
|
0, 0, 1, 1, 0, 1, 0, 1, 0, 1,
|
|
0, 0, 1, 1, 1, 1, 1, 1, 0, 1,
|
|
0, 1, 1, 1, 0, 1, 0, 1, 0, 0,
|
|
0, 1, 0, 1, 1, 0, 0, 0, 1, 0,
|
|
1, 1, 0, 0, 1, 1, 1, 1, 0, 0,
|
|
0, 0, 1, 1, 1, 1, 0, 0, 1, 1,
|
|
1, 1, 1, 0, 1, 0, 0, 0, 1, 0,
|
|
0, 1, 1, 1, 0, 1, 0, 1, 0, 0,
|
|
1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
|
|
0, 1, 1, 0, 1, 1, 1, 0, 1, 1,
|
|
0, 0, 1, 1, 1, 1, 1, 1, 0, 1,
|
|
1, 1, 0, 0, 0, 1, 1, 1, 1, 0,
|
|
0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
|
|
1, 1, 1, 0, 0, 1, 1, 0, 0, 1,
|
|
0, 1, 0, 0, 0, 1, 1, 0, 0, 1,
|
|
0, 0, 1, 1, 0, 1, 0, 1, 0, 1,
|
|
1, 1, 0, 1, 0, 0, 1, 1, 0, 0,
|
|
1, 0, 1, 0, 1, 0, 0, 1, 0, 0,
|
|
0, 1, 0, 1, 1, 1, 1, 1, 1, 0,
|
|
0, 1, 1, 0, 0, 0, 1, 1, 1, 0,
|
|
1, 1, 1, 0, 1, 1, 1, 0, 0, 0,
|
|
0, 0, 1, 0, 0, 1, 0, 0, 0, 1,
|
|
0, 0, 0, 1, 1, 0, 0, 1, 0, 1,
|
|
1, 1, 1, 1, 0, 0, 1, 0, 1, 0,
|
|
0, 1, 0, 1, 1, 1, 1, 1, 1, 0,
|
|
0, 0, 1, 0, 1, 0, 0, 1, 0, 1,
|
|
1, 0, 1, 0, 1, 1, 0, 0, 1, 1,
|
|
1, 1, 1, 0, 1, 0, 0, 1, 1, 1,
|
|
0, 1, 0, 1, 0, 1, 0, 0, 0, 1,
|
|
1, 0, 0, 1, 0, 0, 1, 1, 0, 1,
|
|
1, 0, 1, 0, 1, 1, 0, 0, 1, 1,
|
|
0, 0, 0, 1, 0, 1, 1, 1, 0, 0,
|
|
1, 0, 1, 0, 1, 1, 0, 0, 0, 1,
|
|
1, 0, 1, 0, 0, 1, 1, 1, 0, 1,
|
|
0, 0, 1, 1, 1, 1, 1, 0, 0, 0,
|
|
0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
|
|
0, 1, 1, 1, 1, 0, 0, 0, 1, 0,
|
|
0, 1, 0, 1, 0, 1, 0, 0, 0, 0
|
|
};
|
|
|
|
|
|
/********************************************************************************
|
|
The s_cos_min tables were generated by the following code:
|
|
double angle, scale;
|
|
int index;
|
|
|
|
for (index = 0;index < length;index++)
|
|
{
|
|
angle = scale * ((double)index + 0.5);
|
|
table[index].cosine = (short) (FTOI((18427)* cos(angle)));
|
|
table[index].minus_sine = (short) (FTOI((18427)*(-sin(angle))));
|
|
}
|
|
|
|
|
|
********************************************************************************/
|
|
|
|
cos_msin_t s_cos_msin_2[DCT_LENGTH_DIV_32] = {
|
|
{ 18413 , -723 } ,
|
|
{ 18299 , -2166 } ,
|
|
{ 18073 , -3595 } ,
|
|
{ 17735 , -5002 } ,
|
|
{ 17288 , -6378 } ,
|
|
{ 16734 , -7715 } ,
|
|
{ 16077 , -9004 } ,
|
|
{ 15321 , -10237 } ,
|
|
{ 14471 , -11408 } ,
|
|
{ 13531 , -12508 }
|
|
};
|
|
cos_msin_t s_cos_msin_4[DCT_LENGTH_DIV_16] = {
|
|
{ 18423 , -362 } ,
|
|
{ 18395 , -1085 } ,
|
|
{ 18338 , -1806 } ,
|
|
{ 18253 , -2525 } ,
|
|
{ 18140 , -3239 } ,
|
|
{ 17999 , -3949 } ,
|
|
{ 17830 , -4653 } ,
|
|
{ 17634 , -5349 } ,
|
|
{ 17410 , -6037 } ,
|
|
{ 17159 , -6716 } ,
|
|
{ 16883 , -7385 } ,
|
|
{ 16580 , -8042 } ,
|
|
{ 16251 , -8686 } ,
|
|
{ 15898 , -9318 } ,
|
|
{ 15520 , -9935 } ,
|
|
{ 15118 , -10536 } ,
|
|
{ 14692 , -11122 } ,
|
|
{ 14244 , -11690 } ,
|
|
{ 13774 , -12240 } ,
|
|
{ 13283 , -12772 }
|
|
};
|
|
cos_msin_t s_cos_msin_8[DCT_LENGTH_DIV_8] = {
|
|
{ 18426 , -181 } ,
|
|
{ 18419 , -543 } ,
|
|
{ 18405 , -904 } ,
|
|
{ 18384 , -1265 } ,
|
|
{ 18355 , -1626 } ,
|
|
{ 18320 , -1986 } ,
|
|
{ 18277 , -2345 } ,
|
|
{ 18228 , -2704 } ,
|
|
{ 18171 , -3061 } ,
|
|
{ 18107 , -3417 } ,
|
|
{ 18037 , -3772 } ,
|
|
{ 17959 , -4126 } ,
|
|
{ 17875 , -4477 } ,
|
|
{ 17783 , -4827 } ,
|
|
{ 17685 , -5176 } ,
|
|
{ 17580 , -5522 } ,
|
|
{ 17468 , -5866 } ,
|
|
{ 17350 , -6208 } ,
|
|
{ 17225 , -6547 } ,
|
|
{ 17093 , -6884 } ,
|
|
{ 16954 , -7219 } ,
|
|
{ 16809 , -7550 } ,
|
|
{ 16658 , -7879 } ,
|
|
{ 16500 , -8204 } ,
|
|
{ 16336 , -8526 } ,
|
|
{ 16165 , -8846 } ,
|
|
{ 15988 , -9161 } ,
|
|
{ 15805 , -9473 } ,
|
|
{ 15616 , -9782 } ,
|
|
{ 15421 , -10087 } ,
|
|
{ 15220 , -10387 } ,
|
|
{ 15013 , -10684 } ,
|
|
{ 14801 , -10977 } ,
|
|
{ 14582 , -11265 } ,
|
|
{ 14358 , -11550 } ,
|
|
{ 14129 , -11829 } ,
|
|
{ 13894 , -12104 } ,
|
|
{ 13654 , -12375 } ,
|
|
{ 13408 , -12641 } ,
|
|
{ 13157 , -12901 }
|
|
};
|
|
cos_msin_t s_cos_msin_16[DCT_LENGTH_DIV_4] = {
|
|
{ 18427 , -90 } ,
|
|
{ 18425 , -271 } ,
|
|
{ 18421 , -452 } ,
|
|
{ 18416 , -633 } ,
|
|
{ 18409 , -814 } ,
|
|
{ 18400 , -995 } ,
|
|
{ 18389 , -1175 } ,
|
|
{ 18377 , -1356 } ,
|
|
{ 18363 , -1536 } ,
|
|
{ 18347 , -1716 } ,
|
|
{ 18329 , -1896 } ,
|
|
{ 18310 , -2076 } ,
|
|
{ 18288 , -2256 } ,
|
|
{ 18265 , -2435 } ,
|
|
{ 18241 , -2614 } ,
|
|
{ 18214 , -2793 } ,
|
|
{ 18186 , -2972 } ,
|
|
{ 18156 , -3150 } ,
|
|
{ 18124 , -3328 } ,
|
|
{ 18090 , -3506 } ,
|
|
{ 18055 , -3684 } ,
|
|
{ 18018 , -3861 } ,
|
|
{ 17979 , -4037 } ,
|
|
{ 17939 , -4214 } ,
|
|
{ 17897 , -4390 } ,
|
|
{ 17853 , -4565 } ,
|
|
{ 17807 , -4740 } ,
|
|
{ 17760 , -4915 } ,
|
|
{ 17710 , -5089 } ,
|
|
{ 17660 , -5262 } ,
|
|
{ 17607 , -5436 } ,
|
|
{ 17553 , -5608 } ,
|
|
{ 17497 , -5780 } ,
|
|
{ 17439 , -5952 } ,
|
|
{ 17380 , -6123 } ,
|
|
{ 17319 , -6293 } ,
|
|
{ 17257 , -6463 } ,
|
|
{ 17192 , -6632 } ,
|
|
{ 17126 , -6800 } ,
|
|
{ 17059 , -6968 } ,
|
|
{ 16990 , -7135 } ,
|
|
{ 16919 , -7302 } ,
|
|
{ 16846 , -7467 } ,
|
|
{ 16772 , -7632 } ,
|
|
{ 16696 , -7797 } ,
|
|
{ 16619 , -7960 } ,
|
|
{ 16540 , -8123 } ,
|
|
{ 16459 , -8285 } ,
|
|
{ 16377 , -8446 } ,
|
|
{ 16294 , -8607 } ,
|
|
{ 16208 , -8766 } ,
|
|
{ 16121 , -8925 } ,
|
|
{ 16033 , -9083 } ,
|
|
{ 15943 , -9240 } ,
|
|
{ 15852 , -9396 } ,
|
|
{ 15759 , -9551 } ,
|
|
{ 15664 , -9705 } ,
|
|
{ 15568 , -9858 } ,
|
|
{ 15471 , -10011 } ,
|
|
{ 15372 , -10162 } ,
|
|
{ 15271 , -10313 } ,
|
|
{ 15169 , -10462 } ,
|
|
{ 15066 , -10610 } ,
|
|
{ 14961 , -10758 } ,
|
|
{ 14854 , -10904 } ,
|
|
{ 14747 , -11049 } ,
|
|
{ 14637 , -11194 } ,
|
|
{ 14527 , -11337 } ,
|
|
{ 14415 , -11479 } ,
|
|
{ 14301 , -11620 } ,
|
|
{ 14187 , -11760 } ,
|
|
{ 14071 , -11898 } ,
|
|
{ 13953 , -12036 } ,
|
|
{ 13834 , -12172 } ,
|
|
{ 13714 , -12308 } ,
|
|
{ 13593 , -12442 } ,
|
|
{ 13470 , -12575 } ,
|
|
{ 13346 , -12706 } ,
|
|
{ 13220 , -12837 } ,
|
|
{ 13094 , -12966 }
|
|
};
|
|
cos_msin_t s_cos_msin_32[DCT_LENGTH_DIV_2] = {
|
|
{ 18427 , -45 } ,
|
|
{ 18427 , -136 } ,
|
|
{ 18426 , -226 } ,
|
|
{ 18424 , -317 } ,
|
|
{ 18423 , -407 } ,
|
|
{ 18420 , -497 } ,
|
|
{ 18418 , -588 } ,
|
|
{ 18415 , -678 } ,
|
|
{ 18411 , -769 } ,
|
|
{ 18407 , -859 } ,
|
|
{ 18403 , -949 } ,
|
|
{ 18398 , -1040 } ,
|
|
{ 18392 , -1130 } ,
|
|
{ 18387 , -1220 } ,
|
|
{ 18380 , -1310 } ,
|
|
{ 18374 , -1401 } ,
|
|
{ 18367 , -1491 } ,
|
|
{ 18359 , -1581 } ,
|
|
{ 18351 , -1671 } ,
|
|
{ 18343 , -1761 } ,
|
|
{ 18334 , -1851 } ,
|
|
{ 18324 , -1941 } ,
|
|
{ 18315 , -2031 } ,
|
|
{ 18305 , -2121 } ,
|
|
{ 18294 , -2211 } ,
|
|
{ 18283 , -2301 } ,
|
|
{ 18271 , -2390 } ,
|
|
{ 18259 , -2480 } ,
|
|
{ 18247 , -2570 } ,
|
|
{ 18234 , -2659 } ,
|
|
{ 18221 , -2749 } ,
|
|
{ 18207 , -2838 } ,
|
|
{ 18193 , -2927 } ,
|
|
{ 18178 , -3017 } ,
|
|
{ 18163 , -3106 } ,
|
|
{ 18148 , -3195 } ,
|
|
{ 18132 , -3284 } ,
|
|
{ 18116 , -3373 } ,
|
|
{ 18099 , -3462 } ,
|
|
{ 18082 , -3551 } ,
|
|
{ 18064 , -3639 } ,
|
|
{ 18046 , -3728 } ,
|
|
{ 18027 , -3816 } ,
|
|
{ 18009 , -3905 } ,
|
|
{ 17989 , -3993 } ,
|
|
{ 17969 , -4081 } ,
|
|
{ 17949 , -4170 } ,
|
|
{ 17928 , -4258 } ,
|
|
{ 17907 , -4346 } ,
|
|
{ 17886 , -4434 } ,
|
|
{ 17864 , -4521 } ,
|
|
{ 17841 , -4609 } ,
|
|
{ 17818 , -4696 } ,
|
|
{ 17795 , -4784 } ,
|
|
{ 17772 , -4871 } ,
|
|
{ 17747 , -4958 } ,
|
|
{ 17723 , -5045 } ,
|
|
{ 17698 , -5132 } ,
|
|
{ 17672 , -5219 } ,
|
|
{ 17647 , -5306 } ,
|
|
{ 17620 , -5392 } ,
|
|
{ 17594 , -5479 } ,
|
|
{ 17567 , -5565 } ,
|
|
{ 17539 , -5651 } ,
|
|
{ 17511 , -5737 } ,
|
|
{ 17483 , -5823 } ,
|
|
{ 17454 , -5909 } ,
|
|
{ 17425 , -5994 } ,
|
|
{ 17395 , -6080 } ,
|
|
{ 17365 , -6165 } ,
|
|
{ 17335 , -6250 } ,
|
|
{ 17304 , -6335 } ,
|
|
{ 17272 , -6420 } ,
|
|
{ 17241 , -6505 } ,
|
|
{ 17208 , -6590 } ,
|
|
{ 17176 , -6674 } ,
|
|
{ 17143 , -6758 } ,
|
|
{ 17110 , -6842 } ,
|
|
{ 17076 , -6926 } ,
|
|
{ 17042 , -7010 } ,
|
|
{ 17007 , -7093 } ,
|
|
{ 16972 , -7177 } ,
|
|
{ 16937 , -7260 } ,
|
|
{ 16901 , -7343 } ,
|
|
{ 16864 , -7426 } ,
|
|
{ 16828 , -7509 } ,
|
|
{ 16791 , -7591 } ,
|
|
{ 16753 , -7674 } ,
|
|
{ 16715 , -7756 } ,
|
|
{ 16677 , -7838 } ,
|
|
{ 16638 , -7919 } ,
|
|
{ 16599 , -8001 } ,
|
|
{ 16560 , -8082 } ,
|
|
{ 16520 , -8164 } ,
|
|
{ 16480 , -8245 } ,
|
|
{ 16439 , -8325 } ,
|
|
{ 16398 , -8406 } ,
|
|
{ 16357 , -8486 } ,
|
|
{ 16315 , -8567 } ,
|
|
{ 16272 , -8647 } ,
|
|
{ 16230 , -8726 } ,
|
|
{ 16187 , -8806 } ,
|
|
{ 16143 , -8885 } ,
|
|
{ 16100 , -8964 } ,
|
|
{ 16055 , -9043 } ,
|
|
{ 16011 , -9122 } ,
|
|
{ 15966 , -9200 } ,
|
|
{ 15920 , -9279 } ,
|
|
{ 15875 , -9357 } ,
|
|
{ 15829 , -9435 } ,
|
|
{ 15782 , -9512 } ,
|
|
{ 15735 , -9589 } ,
|
|
{ 15688 , -9667 } ,
|
|
{ 15640 , -9744 } ,
|
|
{ 15592 , -9820 } ,
|
|
{ 15544 , -9897 } ,
|
|
{ 15495 , -9973 } ,
|
|
{ 15446 , -10049 } ,
|
|
{ 15396 , -10124 } ,
|
|
{ 15347 , -10200 } ,
|
|
{ 15296 , -10275 } ,
|
|
{ 15246 , -10350 } ,
|
|
{ 15195 , -10425 } ,
|
|
{ 15143 , -10499 } ,
|
|
{ 15092 , -10573 } ,
|
|
{ 15040 , -10647 } ,
|
|
{ 14987 , -10721 } ,
|
|
{ 14934 , -10794 } ,
|
|
{ 14881 , -10868 } ,
|
|
{ 14828 , -10941 } ,
|
|
{ 14774 , -11013 } ,
|
|
{ 14719 , -11086 } ,
|
|
{ 14665 , -11158 } ,
|
|
{ 14610 , -11230 } ,
|
|
{ 14555 , -11301 } ,
|
|
{ 14499 , -11372 } ,
|
|
{ 14443 , -11444 } ,
|
|
{ 14387 , -11514 } ,
|
|
{ 14330 , -11585 } ,
|
|
{ 14273 , -11655 } ,
|
|
{ 14216 , -11725 } ,
|
|
{ 14158 , -11795 } ,
|
|
{ 14100 , -11864 } ,
|
|
{ 14041 , -11933 } ,
|
|
{ 13983 , -12002 } ,
|
|
{ 13924 , -12070 } ,
|
|
{ 13864 , -12138 } ,
|
|
{ 13804 , -12206 } ,
|
|
{ 13744 , -12274 } ,
|
|
{ 13684 , -12341 } ,
|
|
{ 13623 , -12408 } ,
|
|
{ 13562 , -12475 } ,
|
|
{ 13501 , -12541 } ,
|
|
{ 13439 , -12608 } ,
|
|
{ 13377 , -12673 } ,
|
|
{ 13314 , -12739 } ,
|
|
{ 13252 , -12804 } ,
|
|
{ 13189 , -12869 } ,
|
|
{ 13125 , -12934 } ,
|
|
{ 13062 , -12998 }
|
|
};
|
|
cos_msin_t s_cos_msin_64[DCT_LENGTH] = {
|
|
{18426, -21},
|
|
{18426, -66},
|
|
{18426, -110},
|
|
{18426, -154},
|
|
{18425, -198},
|
|
{18425, -242},
|
|
{18424, -286},
|
|
{18424, -331},
|
|
{18423, -374},
|
|
{18421, -419},
|
|
{18421, -463},
|
|
{18419, -507},
|
|
{18418, -552},
|
|
{18417, -595},
|
|
{18415, -639},
|
|
{18414, -684},
|
|
{18412, -728},
|
|
{18410, -772},
|
|
{18408, -816},
|
|
{18406, -860},
|
|
{18404, -904},
|
|
{18402, -949},
|
|
{18400, -992},
|
|
{18397, -1037},
|
|
{18394, -1081},
|
|
{18392, -1125},
|
|
{18389, -1169},
|
|
{18387, -1213},
|
|
{18384, -1257},
|
|
{18380, -1301},
|
|
{18378, -1345},
|
|
{18374, -1389},
|
|
{18371, -1433},
|
|
{18367, -1477},
|
|
{18364, -1521},
|
|
{18360, -1566},
|
|
{18356, -1609},
|
|
{18352, -1653},
|
|
{18348, -1697},
|
|
{18344, -1742},
|
|
{18339, -1785},
|
|
{18335, -1829},
|
|
{18331, -1873},
|
|
{18326, -1917},
|
|
{18322, -1961},
|
|
{18317, -2005},
|
|
{18312, -2049},
|
|
{18307, -2092},
|
|
{18302, -2137},
|
|
{18297, -2180},
|
|
{18292, -2224},
|
|
{18286, -2268},
|
|
{18281, -2312},
|
|
{18275, -2356},
|
|
{18270, -2399},
|
|
{18264, -2443},
|
|
{18258, -2487},
|
|
{18252, -2531},
|
|
{18246, -2574},
|
|
{18240, -2618},
|
|
{18233, -2662},
|
|
{18227, -2706},
|
|
{18220, -2749},
|
|
{18214, -2793},
|
|
{18207, -2836},
|
|
{18200, -2880},
|
|
{18193, -2924},
|
|
{18186, -2967},
|
|
{18179, -3011},
|
|
{18172, -3055},
|
|
{18164, -3098},
|
|
{18157, -3142},
|
|
{18149, -3185},
|
|
{18141, -3229},
|
|
{18134, -3272},
|
|
{18126, -3316},
|
|
{18118, -3359},
|
|
{18109, -3403},
|
|
{18101, -3446},
|
|
{18094, -3489},
|
|
{18085, -3533},
|
|
{18076, -3576},
|
|
{18068, -3619},
|
|
{18059, -3663},
|
|
{18050, -3706},
|
|
{18041, -3749},
|
|
{18032, -3792},
|
|
{18023, -3836},
|
|
{18014, -3879},
|
|
{18005, -3922},
|
|
{17995, -3965},
|
|
{17986, -4008},
|
|
{17975, -4051},
|
|
{17966, -4094},
|
|
{17956, -4138},
|
|
{17946, -4180},
|
|
{17936, -4224},
|
|
{17926, -4266},
|
|
{17916, -4309},
|
|
{17905, -4353},
|
|
{17895, -4395},
|
|
{17884, -4438},
|
|
{17874, -4481},
|
|
{17863, -4524},
|
|
{17852, -4567},
|
|
{17841, -4609},
|
|
{17830, -4652},
|
|
{17819, -4695},
|
|
{17807, -4738},
|
|
{17796, -4780},
|
|
{17784, -4823},
|
|
{17772, -4865},
|
|
{17761, -4908},
|
|
{17749, -4951},
|
|
{17738, -4993},
|
|
{17725, -5036},
|
|
{17713, -5078},
|
|
{17701, -5121},
|
|
{17689, -5163},
|
|
{17676, -5205},
|
|
{17664, -5248},
|
|
{17651, -5290},
|
|
{17638, -5333},
|
|
{17626, -5375},
|
|
{17613, -5417},
|
|
{17599, -5459},
|
|
{17586, -5501},
|
|
{17573, -5544},
|
|
{17560, -5586},
|
|
{17546, -5627},
|
|
{17533, -5670},
|
|
{17519, -5712},
|
|
{17505, -5753},
|
|
{17492, -5795},
|
|
{17478, -5837},
|
|
{17464, -5879},
|
|
{17450, -5921},
|
|
{17435, -5963},
|
|
{17421, -6005},
|
|
{17406, -6046},
|
|
{17392, -6088},
|
|
{17377, -6130},
|
|
{17363, -6172},
|
|
{17348, -6213},
|
|
{17333, -6254},
|
|
{17318, -6296},
|
|
{17303, -6338},
|
|
{17288, -6379},
|
|
{17272, -6420},
|
|
{17257, -6462},
|
|
{17241, -6503},
|
|
{17225, -6545},
|
|
{17210, -6586},
|
|
{17194, -6627},
|
|
{17178, -6668},
|
|
{17162, -6709},
|
|
{17145, -6750},
|
|
{17130, -6791},
|
|
{17113, -6832},
|
|
{17097, -6874},
|
|
{17080, -6915},
|
|
{17064, -6956},
|
|
{17047, -6996},
|
|
{17030, -7037},
|
|
{17013, -7078},
|
|
{16996, -7119},
|
|
{16979, -7159},
|
|
{16962, -7200},
|
|
{16945, -7241},
|
|
{16927, -7281},
|
|
{16910, -7322},
|
|
{16892, -7362},
|
|
{16874, -7403},
|
|
{16856, -7444},
|
|
{16838, -7484},
|
|
{16821, -7524},
|
|
{16802, -7564},
|
|
{16784, -7605},
|
|
{16766, -7645},
|
|
{16748, -7685},
|
|
{16729, -7725},
|
|
{16711, -7765},
|
|
{16692, -7805},
|
|
{16674, -7845},
|
|
{16654, -7885},
|
|
{16635, -7925},
|
|
{16616, -7964},
|
|
{16597, -8004},
|
|
{16578, -8044},
|
|
{16559, -8084},
|
|
{16539, -8124},
|
|
{16520, -8164},
|
|
{16500, -8203},
|
|
{16480, -8242},
|
|
{16461, -8282},
|
|
{16441, -8322},
|
|
{16421, -8361},
|
|
{16401, -8400},
|
|
{16380, -8440},
|
|
{16360, -8479},
|
|
{16340, -8518},
|
|
{16319, -8557},
|
|
{16299, -8597},
|
|
{16278, -8635},
|
|
{16257, -8674},
|
|
{16237, -8713},
|
|
{16215, -8752},
|
|
{16195, -8791},
|
|
{16173, -8829},
|
|
{16152, -8868},
|
|
{16131, -8907},
|
|
{16110, -8946},
|
|
{16088, -8985},
|
|
{16067, -9023},
|
|
{16045, -9061},
|
|
{16023, -9100},
|
|
{16001, -9138},
|
|
{15979, -9176},
|
|
{15957, -9215},
|
|
{15935, -9253},
|
|
{15913, -9291},
|
|
{15891, -9329},
|
|
{15868, -9367},
|
|
{15846, -9405},
|
|
{15823, -9443},
|
|
{15800, -9481},
|
|
{15778, -9519},
|
|
{15755, -9557},
|
|
{15732, -9595},
|
|
{15709, -9632},
|
|
{15686, -9670},
|
|
{15662, -9708},
|
|
{15639, -9745},
|
|
{15615, -9782},
|
|
{15592, -9820},
|
|
{15569, -9857},
|
|
{15544, -9894},
|
|
{15521, -9932},
|
|
{15497, -9969},
|
|
{15473, -10006},
|
|
{15449, -10043},
|
|
{15425, -10080},
|
|
{15401, -10117},
|
|
{15377, -10154},
|
|
{15352, -10191},
|
|
{15327, -10227},
|
|
{15303, -10264},
|
|
{15278, -10301},
|
|
{15254, -10337},
|
|
{15229, -10374},
|
|
{15204, -10411},
|
|
{15180, -10447},
|
|
{15154, -10483},
|
|
{15129, -10519},
|
|
{15104, -10556},
|
|
{15078, -10592},
|
|
{15053, -10628},
|
|
{15027, -10664},
|
|
{15002, -10700},
|
|
{14976, -10736},
|
|
{14950, -10772},
|
|
{14924, -10808},
|
|
{14898, -10844},
|
|
{14872, -10879},
|
|
{14846, -10915},
|
|
{14820, -10950},
|
|
{14794, -10985},
|
|
{14767, -11021},
|
|
{14741, -11056},
|
|
{14714, -11092},
|
|
{14687, -11127},
|
|
{14661, -11162},
|
|
{14635, -11197},
|
|
{14607, -11232},
|
|
{14581, -11267},
|
|
{14554, -11302},
|
|
{14526, -11337},
|
|
{14499, -11372},
|
|
{14472, -11407},
|
|
{14444, -11441},
|
|
{14417, -11476},
|
|
{14389, -11511},
|
|
{14362, -11545},
|
|
{14334, -11579},
|
|
{14306, -11614},
|
|
{14278, -11648},
|
|
{14251, -11682},
|
|
{14222, -11716},
|
|
{14194, -11750},
|
|
{14166, -11784},
|
|
{14137, -11818},
|
|
{14109, -11852},
|
|
{14081, -11886},
|
|
{14053, -11919},
|
|
{14023, -11953},
|
|
{13995, -11987},
|
|
{13966, -12020},
|
|
{13937, -12054},
|
|
{13909, -12087},
|
|
{13879, -12120},
|
|
{13851, -12153},
|
|
{13821, -12187},
|
|
{13792, -12220},
|
|
{13763, -12253},
|
|
{13733, -12286},
|
|
{13704, -12319},
|
|
{13674, -12351},
|
|
{13645, -12385},
|
|
{13615, -12417},
|
|
{13585, -12450},
|
|
{13555, -12482},
|
|
{13525, -12514},
|
|
{13495, -12546},
|
|
{13465, -12579},
|
|
{13435, -12611},
|
|
{13405, -12644},
|
|
{13374, -12676},
|
|
{13345, -12708},
|
|
{13314, -12739},
|
|
{13283, -12772}
|
|
};
|
|
|
|
|
|
|
|
cos_msin_t *s_cos_msin_table[] = {s_cos_msin_2, s_cos_msin_4,
|
|
s_cos_msin_8, s_cos_msin_16,
|
|
s_cos_msin_32, s_cos_msin_64
|
|
};
|
|
|