10c1bc742181ded4930842b46e9507372f0b1b963James Dong/**
20c1bc742181ded4930842b46e9507372f0b1b963James Dong *
30c1bc742181ded4930842b46e9507372f0b1b963James Dong * File Name:  armCOMM_IDCTTable.c
40c1bc742181ded4930842b46e9507372f0b1b963James Dong * OpenMAX DL: v1.0.2
50c1bc742181ded4930842b46e9507372f0b1b963James Dong * Revision:   12290
60c1bc742181ded4930842b46e9507372f0b1b963James Dong * Date:       Wednesday, April 9, 2008
70c1bc742181ded4930842b46e9507372f0b1b963James Dong *
80c1bc742181ded4930842b46e9507372f0b1b963James Dong * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved.
90c1bc742181ded4930842b46e9507372f0b1b963James Dong *
100c1bc742181ded4930842b46e9507372f0b1b963James Dong *
110c1bc742181ded4930842b46e9507372f0b1b963James Dong *
120c1bc742181ded4930842b46e9507372f0b1b963James Dong * File: armCOMM_IDCTTable.c
130c1bc742181ded4930842b46e9507372f0b1b963James Dong * Brief: Defines Tables used in IDCT computation
140c1bc742181ded4930842b46e9507372f0b1b963James Dong *
150c1bc742181ded4930842b46e9507372f0b1b963James Dong */
160c1bc742181ded4930842b46e9507372f0b1b963James Dong
170c1bc742181ded4930842b46e9507372f0b1b963James Dong#include "armCOMM_IDCTTable.h"
180c1bc742181ded4930842b46e9507372f0b1b963James Dong
190c1bc742181ded4930842b46e9507372f0b1b963James Dong     /*  Table of s(u)*A(u)*A(v)/16 at Q15
200c1bc742181ded4930842b46e9507372f0b1b963James Dong      *  s(u)=1.0 0 <= u <= 5
210c1bc742181ded4930842b46e9507372f0b1b963James Dong      *  s(6)=2.0
220c1bc742181ded4930842b46e9507372f0b1b963James Dong      *  s(7)=4.0
230c1bc742181ded4930842b46e9507372f0b1b963James Dong      *  A(0) = 2*sqrt(2)
240c1bc742181ded4930842b46e9507372f0b1b963James Dong      *  A(u) = 4*cos(u*pi/16)  for (u!=0)
250c1bc742181ded4930842b46e9507372f0b1b963James Dong	  */
260c1bc742181ded4930842b46e9507372f0b1b963James Dong
270c1bc742181ded4930842b46e9507372f0b1b963James Dong__align(4) const OMX_U16 armCOMM_IDCTPreScale [64] =
280c1bc742181ded4930842b46e9507372f0b1b963James Dong{
290c1bc742181ded4930842b46e9507372f0b1b963James Dong    0x4000, 0x58c5, 0x539f, 0x4b42, 0x4000, 0x3249, 0x4546, 0x46a1,
300c1bc742181ded4930842b46e9507372f0b1b963James Dong    0x58c5, 0x7b21, 0x73fc, 0x6862, 0x58c5, 0x45bf, 0x6016, 0x61f8,
310c1bc742181ded4930842b46e9507372f0b1b963James Dong    0x539f, 0x73fc, 0x6d41, 0x6254, 0x539f, 0x41b3, 0x5a82, 0x5c48,
320c1bc742181ded4930842b46e9507372f0b1b963James Dong    0x4b42, 0x6862, 0x6254, 0x587e, 0x4b42, 0x3b21, 0x5175, 0x530d,
330c1bc742181ded4930842b46e9507372f0b1b963James Dong    0x4000, 0x58c5, 0x539f, 0x4b42, 0x4000, 0x3249, 0x4546, 0x46a1,
340c1bc742181ded4930842b46e9507372f0b1b963James Dong    0x3249, 0x45bf, 0x41b3, 0x3b21, 0x3249, 0x2782, 0x366d, 0x377e,
350c1bc742181ded4930842b46e9507372f0b1b963James Dong    0x22a3, 0x300b, 0x2d41, 0x28ba, 0x22a3, 0x1b37, 0x257e, 0x263a,
360c1bc742181ded4930842b46e9507372f0b1b963James Dong    0x11a8, 0x187e, 0x1712, 0x14c3, 0x11a8, 0x0de0, 0x131d, 0x137d
370c1bc742181ded4930842b46e9507372f0b1b963James Dong};
380c1bc742181ded4930842b46e9507372f0b1b963James Dong    /* Above array armCOMM_IDCTPreScale,  in Q23 format */
390c1bc742181ded4930842b46e9507372f0b1b963James Dongconst OMX_U32 armCOMM_IDCTPreScaleU32 [64] =
400c1bc742181ded4930842b46e9507372f0b1b963James Dong{
410c1bc742181ded4930842b46e9507372f0b1b963James Dong    0x400000, 0x58c543, 0x539eba, 0x4b418c, 0x400000, 0x3248d4, 0x4545ea, 0x46a157,
420c1bc742181ded4930842b46e9507372f0b1b963James Dong    0x58c543, 0x7b20d8, 0x73fbfc, 0x686214, 0x58c543, 0x45bf1f, 0x6015a5, 0x61f78b,
430c1bc742181ded4930842b46e9507372f0b1b963James Dong    0x539eba, 0x73fbfc, 0x6d413d, 0x6253a6, 0x539eba, 0x41b328, 0x5a827a, 0x5c4869,
440c1bc742181ded4930842b46e9507372f0b1b963James Dong    0x4b418c, 0x686214, 0x6253a6, 0x587de3, 0x4b418c, 0x3b20d8, 0x5174e0, 0x530d69,
450c1bc742181ded4930842b46e9507372f0b1b963James Dong    0x400000, 0x58c543, 0x539eba, 0x4b418c, 0x400000, 0x3248d4, 0x4545ea, 0x46a157,
460c1bc742181ded4930842b46e9507372f0b1b963James Dong    0x3248d4, 0x45bf1f, 0x41b328, 0x3b20d8, 0x3248d4, 0x27821d, 0x366d72, 0x377e6b,
470c1bc742181ded4930842b46e9507372f0b1b963James Dong    0x22a2f5, 0x300ad3, 0x2d413d, 0x28ba70, 0x22a2f5, 0x1b36b9, 0x257d86, 0x26398d,
480c1bc742181ded4930842b46e9507372f0b1b963James Dong    0x11a856, 0x187de3, 0x17121a, 0x14c35a, 0x11a856, 0x0ddf9b, 0x131cc7, 0x137ca2
490c1bc742181ded4930842b46e9507372f0b1b963James Dong};
500c1bc742181ded4930842b46e9507372f0b1b963James Dong
510c1bc742181ded4930842b46e9507372f0b1b963James Dongconst OMX_U16 armCOMM_IDCTCoef [4] =
520c1bc742181ded4930842b46e9507372f0b1b963James Dong{
530c1bc742181ded4930842b46e9507372f0b1b963James Dong    0x5a82, /* InvSqrt2 */
540c1bc742181ded4930842b46e9507372f0b1b963James Dong    0x30fc, /* SinPIBy8 */
550c1bc742181ded4930842b46e9507372f0b1b963James Dong    0x7642, /* CosPIBy8 */
560c1bc742181ded4930842b46e9507372f0b1b963James Dong    0x0000
570c1bc742181ded4930842b46e9507372f0b1b963James Dong};
580c1bc742181ded4930842b46e9507372f0b1b963James Dong
590c1bc742181ded4930842b46e9507372f0b1b963James Dong
600c1bc742181ded4930842b46e9507372f0b1b963James Dong
61