blob: aa04225e107a4f63df705979c06c0bf622591c47 [file] [log] [blame]
/* ------------------------------------------------------------------
* Copyright (C) 1998-2009 PacketVideo
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied.
* See the License for the specific language governing permissions
* and limitations under the License.
* -------------------------------------------------------------------
*/
/*
Pathname: window_tables_fxp.c
Funtions:
------------------------------------------------------------------------------
REVISION HISTORY
Description:
changed table content definition from UInt to UInt16.
Description:
changed Long_Window_fxp and Short _Window_fxp tables definition, from
"const UInt16 *" to "const UInt16 * const" to avoid global variable
definition.
Description:
Improved rounding on table elements.
Description: Eliminated structure to avoid assigning addresses to constant
tables. This solve linking problem when using the
/ropi option (Read-only position independent) for some
compilers
- Eliminated Long_Window_fxp and Short_Window_fxp as global
contants vectors
Who: Date:
Description:
------------------------------------------------------------------------------
MODULE DESCRIPTION
Window tables
For a sine table with N points:
w_left = sin(pi/N (n + 1/2)) for 0 =< n < N/2
w_rigth = sin(pi/N (n + 1/2)) for N/2 =< n < N
For Kaiser-Bessel derived (KBD)
n N/2
w_left = sqrt(( SUM W(p,a) )/( SUM W(p,a) ) for 0 =< n < N/2
p=0 p=0
N-n-1 N/2
w_rigth = sqrt(( SUM W(p,a) )/( SUM W(p,a) ) for N/2 =< n < N
p=0 p=0
W(p,a) see ISO 14496-3, pag 113
------------------------------------------------------------------------------
REQUIREMENTS
This module shall implement the fix point verwion of the windowing tables
------------------------------------------------------------------------------
REFERENCES
[1] ISO 14496-3, pag 113
------------------------------------------------------------------------------
*/
/*----------------------------------------------------------------------------
; INCLUDES
----------------------------------------------------------------------------*/
#include "pv_audio_type_defs.h"
#include "window_block_fxp.h"
/*----------------------------------------------------------------------------
; MACROS
; Define module specific macros here
----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------
; DEFINES
; Include all pre-processor statements here. Include conditional
; compile variables also.
----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------
; LOCAL FUNCTION DEFINITIONS
; Function Prototype declaration
----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------
; LOCAL VARIABLE DEFINITIONS
; Variable declaration - defined here and used outside this module
----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------
; EXTERNAL FUNCTION REFERENCES
; Declare functions defined elsewhere and referenced in this module
----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------
; EXTERNAL VARIABLES REFERENCES
; Declare variables used in this module but defined elsewhere
----------------------------------------------------------------------------*/
const Int16 Long_Window_sine_fxp[LONG_WINDOW] =
{
0x0019, 0x004B, 0x007E, 0x00B0,
0x00E2, 0x0114, 0x0147, 0x0179,
0x01AB, 0x01DD, 0x0210, 0x0242,
0x0274, 0x02A7, 0x02D9, 0x030B,
0x033D, 0x0370, 0x03A2, 0x03D4,
0x0406, 0x0438, 0x046B, 0x049D,
0x04CF, 0x0501, 0x0534, 0x0566,
0x0598, 0x05CA, 0x05FC, 0x062F,
0x0661, 0x0693, 0x06C5, 0x06F7,
0x072A, 0x075C, 0x078E, 0x07C0,
0x07F2, 0x0825, 0x0857, 0x0889,
0x08BB, 0x08ED, 0x091F, 0x0951,
0x0984, 0x09B6, 0x09E8, 0x0A1A,
0x0A4C, 0x0A7E, 0x0AB0, 0x0AE2,
0x0B14, 0x0B46, 0x0B78, 0x0BAB,
0x0BDD, 0x0C0F, 0x0C41, 0x0C73,
0x0CA5, 0x0CD7, 0x0D09, 0x0D3B,
0x0D6D, 0x0D9F, 0x0DD1, 0x0E03,
0x0E35, 0x0E67, 0x0E99, 0x0ECA,
0x0EFC, 0x0F2E, 0x0F60, 0x0F92,
0x0FC4, 0x0FF6, 0x1028, 0x105A,
0x108B, 0x10BD, 0x10EF, 0x1121,
0x1153, 0x1185, 0x11B6, 0x11E8,
0x121A, 0x124C, 0x127D, 0x12AF,
0x12E1, 0x1312, 0x1344, 0x1376,
0x13A8, 0x13D9, 0x140B, 0x143C,
0x146E, 0x14A0, 0x14D1, 0x1503,
0x1534, 0x1566, 0x1598, 0x15C9,
0x15FB, 0x162C, 0x165E, 0x168F,
0x16C1, 0x16F2, 0x1724, 0x1755,
0x1786, 0x17B8, 0x17E9, 0x181B,
0x184C, 0x187D, 0x18AF, 0x18E0,
0x1911, 0x1942, 0x1974, 0x19A5,
0x19D6, 0x1A07, 0x1A39, 0x1A6A,
0x1A9B, 0x1ACC, 0x1AFD, 0x1B2E,
0x1B60, 0x1B91, 0x1BC2, 0x1BF3,
0x1C24, 0x1C55, 0x1C86, 0x1CB7,
0x1CE8, 0x1D19, 0x1D4A, 0x1D7B,
0x1DAC, 0x1DDC, 0x1E0D, 0x1E3E,
0x1E6F, 0x1EA0, 0x1ED1, 0x1F01,
0x1F32, 0x1F63, 0x1F94, 0x1FC4,
0x1FF5, 0x2026, 0x2056, 0x2087,
0x20B7, 0x20E8, 0x2119, 0x2149,
0x217A, 0x21AA, 0x21DB, 0x220B,
0x223C, 0x226C, 0x229C, 0x22CD,
0x22FD, 0x232E, 0x235E, 0x238E,
0x23BE, 0x23EF, 0x241F, 0x244F,
0x247F, 0x24AF, 0x24E0, 0x2510,
0x2540, 0x2570, 0x25A0, 0x25D0,
0x2600, 0x2630, 0x2660, 0x2690,
0x26C0, 0x26F0, 0x2720, 0x274F,
0x277F, 0x27AF, 0x27DF, 0x280F,
0x283E, 0x286E, 0x289E, 0x28CD,
0x28FD, 0x292D, 0x295C, 0x298C,
0x29BB, 0x29EB, 0x2A1A, 0x2A4A,
0x2A79, 0x2AA8, 0x2AD8, 0x2B07,
0x2B37, 0x2B66, 0x2B95, 0x2BC4,
0x2BF4, 0x2C23, 0x2C52, 0x2C81,
0x2CB0, 0x2CDF, 0x2D0E, 0x2D3D,
0x2D6C, 0x2D9B, 0x2DCA, 0x2DF9,
0x2E28, 0x2E57, 0x2E86, 0x2EB5,
0x2EE3, 0x2F12, 0x2F41, 0x2F70,
0x2F9E, 0x2FCD, 0x2FFC, 0x302A,
0x3059, 0x3087, 0x30B6, 0x30E4,
0x3113, 0x3141, 0x316F, 0x319E,
0x31CC, 0x31FA, 0x3229, 0x3257,
0x3285, 0x32B3, 0x32E1, 0x330F,
0x333E, 0x336C, 0x339A, 0x33C8,
0x33F6, 0x3423, 0x3451, 0x347F,
0x34AD, 0x34DB, 0x3509, 0x3536,
0x3564, 0x3592, 0x35BF, 0x35ED,
0x361A, 0x3648, 0x3676, 0x36A3,
0x36D0, 0x36FE, 0x372B, 0x3759,
0x3786, 0x37B3, 0x37E0, 0x380E,
0x383B, 0x3868, 0x3895, 0x38C2,
0x38EF, 0x391C, 0x3949, 0x3976,
0x39A3, 0x39D0, 0x39FD, 0x3A29,
0x3A56, 0x3A83, 0x3AB0, 0x3ADC,
0x3B09, 0x3B35, 0x3B62, 0x3B8E,
0x3BBB, 0x3BE7, 0x3C14, 0x3C40,
0x3C6C, 0x3C99, 0x3CC5, 0x3CF1,
0x3D1D, 0x3D4A, 0x3D76, 0x3DA2,
0x3DCE, 0x3DFA, 0x3E26, 0x3E52,
0x3E7D, 0x3EA9, 0x3ED5, 0x3F01,
0x3F2D, 0x3F58, 0x3F84, 0x3FB0,
0x3FDB, 0x4007, 0x4032, 0x405E,
0x4089, 0x40B5, 0x40E0, 0x410B,
0x4136, 0x4162, 0x418D, 0x41B8,
0x41E3, 0x420E, 0x4239, 0x4264,
0x428F, 0x42BA, 0x42E5, 0x4310,
0x433B, 0x4365, 0x4390, 0x43BB,
0x43E5, 0x4410, 0x443B, 0x4465,
0x448F, 0x44BA, 0x44E4, 0x450F,
0x4539, 0x4563, 0x458D, 0x45B8,
0x45E2, 0x460C, 0x4636, 0x4660,
0x468A, 0x46B4, 0x46DE, 0x4707,
0x4731, 0x475B, 0x4785, 0x47AE,
0x47D8, 0x4802, 0x482B, 0x4855,
0x487E, 0x48A7, 0x48D1, 0x48FA,
0x4923, 0x494D, 0x4976, 0x499F,
0x49C8, 0x49F1, 0x4A1A, 0x4A43,
0x4A6C, 0x4A95, 0x4ABE, 0x4AE6,
0x4B0F, 0x4B38, 0x4B61, 0x4B89,
0x4BB2, 0x4BDA, 0x4C03, 0x4C2B,
0x4C53, 0x4C7C, 0x4CA4, 0x4CCC,
0x4CF4, 0x4D1D, 0x4D45, 0x4D6D,
0x4D95, 0x4DBD, 0x4DE5, 0x4E0D,
0x4E34, 0x4E5C, 0x4E84, 0x4EAB,
0x4ED3, 0x4EFB, 0x4F22, 0x4F4A,
0x4F71, 0x4F99, 0x4FC0, 0x4FE7,
0x500E, 0x5036, 0x505D, 0x5084,
0x50AB, 0x50D2, 0x50F9, 0x5120,
0x5147, 0x516D, 0x5194, 0x51BB,
0x51E2, 0x5208, 0x522F, 0x5255,
0x527C, 0x52A2, 0x52C8, 0x52EF,
0x5315, 0x533B, 0x5361, 0x5387,
0x53AE, 0x53D4, 0x53FA, 0x541F,
0x5445, 0x546B, 0x5491, 0x54B7,
0x54DC, 0x5502, 0x5527, 0x554D,
0x5572, 0x5598, 0x55BD, 0x55E2,
0x5608, 0x562D, 0x5652, 0x5677,
0x569C, 0x56C1, 0x56E6, 0x570B,
0x5730, 0x5754, 0x5779, 0x579E,
0x57C2, 0x57E7, 0x580C, 0x5830,
0x5854, 0x5879, 0x589D, 0x58C1,
0x58E5, 0x590A, 0x592E, 0x5952,
0x5976, 0x599A, 0x59BD, 0x59E1,
0x5A05, 0x5A29, 0x5A4C, 0x5A70,
0x5A94, 0x5AB7, 0x5ADA, 0x5AFE,
0x5B21, 0x5B44, 0x5B68, 0x5B8B,
0x5BAE, 0x5BD1, 0x5BF4, 0x5C17,
0x5C3A, 0x5C5D, 0x5C7F, 0x5CA2,
0x5CC5, 0x5CE7, 0x5D0A, 0x5D2C,
0x5D4F, 0x5D71, 0x5D94, 0x5DB6,
0x5DD8, 0x5DFA, 0x5E1C, 0x5E3E,
0x5E60, 0x5E82, 0x5EA4, 0x5EC6,
0x5EE8, 0x5F09, 0x5F2B, 0x5F4D,
0x5F6E, 0x5F90, 0x5FB1, 0x5FD2,
0x5FF4, 0x6015, 0x6036, 0x6057,
0x6078, 0x6099, 0x60BA, 0x60DB,
0x60FC, 0x611D, 0x613D, 0x615E,
0x617F, 0x619F, 0x61C0, 0x61E0,
0x6200, 0x6221, 0x6241, 0x6261,
0x6281, 0x62A1, 0x62C1, 0x62E1,
0x6301, 0x6321, 0x6341, 0x6360,
0x6380, 0x63A0, 0x63BF, 0x63DF,
0x63FE, 0x641D, 0x643D, 0x645C,
0x647B, 0x649A, 0x64B9, 0x64D8,
0x64F7, 0x6516, 0x6535, 0x6554,
0x6572, 0x6591, 0x65AF, 0x65CE,
0x65EC, 0x660B, 0x6629, 0x6647,
0x6666, 0x6684, 0x66A2, 0x66C0,
0x66DE, 0x66FC, 0x6719, 0x6737,
0x6755, 0x6772, 0x6790, 0x67AE,
0x67CB, 0x67E8, 0x6806, 0x6823,
0x6840, 0x685D, 0x687A, 0x6897,
0x68B4, 0x68D1, 0x68EE, 0x690B,
0x6927, 0x6944, 0x6961, 0x697D,
0x699A, 0x69B6, 0x69D2, 0x69EE,
0x6A0B, 0x6A27, 0x6A43, 0x6A5F,
0x6A7B, 0x6A97, 0x6AB2, 0x6ACE,
0x6AEA, 0x6B05, 0x6B21, 0x6B3C,
0x6B58, 0x6B73, 0x6B8E, 0x6BAA,
0x6BC5, 0x6BE0, 0x6BFB, 0x6C16,
0x6C31, 0x6C4C, 0x6C66, 0x6C81,
0x6C9C, 0x6CB6, 0x6CD1, 0x6CEB,
0x6D06, 0x6D20, 0x6D3A, 0x6D54,
0x6D6E, 0x6D88, 0x6DA2, 0x6DBC,
0x6DD6, 0x6DF0, 0x6E0A, 0x6E23,
0x6E3D, 0x6E56, 0x6E70, 0x6E89,
0x6EA2, 0x6EBC, 0x6ED5, 0x6EEE,
0x6F07, 0x6F20, 0x6F39, 0x6F52,
0x6F6B, 0x6F83, 0x6F9C, 0x6FB4,
0x6FCD, 0x6FE5, 0x6FFE, 0x7016,
0x702E, 0x7046, 0x705F, 0x7077,
0x708F, 0x70A6, 0x70BE, 0x70D6,
0x70EE, 0x7105, 0x711D, 0x7134,
0x714C, 0x7163, 0x717A, 0x7192,
0x71A9, 0x71C0, 0x71D7, 0x71EE,
0x7205, 0x721C, 0x7232, 0x7249,
0x7260, 0x7276, 0x728D, 0x72A3,
0x72B9, 0x72D0, 0x72E6, 0x72FC,
0x7312, 0x7328, 0x733E, 0x7354,
0x7369, 0x737F, 0x7395, 0x73AA,
0x73C0, 0x73D5, 0x73EB, 0x7400,
0x7415, 0x742A, 0x743F, 0x7454,
0x7469, 0x747E, 0x7493, 0x74A8,
0x74BC, 0x74D1, 0x74E5, 0x74FA,
0x750E, 0x7522, 0x7537, 0x754B,
0x755F, 0x7573, 0x7587, 0x759B,
0x75AE, 0x75C2, 0x75D6, 0x75E9,
0x75FD, 0x7610, 0x7624, 0x7637,
0x764A, 0x765E, 0x7671, 0x7684,
0x7697, 0x76A9, 0x76BC, 0x76CF,
0x76E2, 0x76F4, 0x7707, 0x7719,
0x772C, 0x773E, 0x7750, 0x7762,
0x7774, 0x7786, 0x7798, 0x77AA,
0x77BC, 0x77CE, 0x77DF, 0x77F1,
0x7803, 0x7814, 0x7825, 0x7837,
0x7848, 0x7859, 0x786A, 0x787B,
0x788C, 0x789D, 0x78AE, 0x78BE,
0x78CF, 0x78E0, 0x78F0, 0x7901,
0x7911, 0x7921, 0x7931, 0x7941,
0x7952, 0x7962, 0x7971, 0x7981,
0x7991, 0x79A1, 0x79B0, 0x79C0,
0x79CF, 0x79DF, 0x79EE, 0x79FD,
0x7A0D, 0x7A1C, 0x7A2B, 0x7A3A,
0x7A49, 0x7A57, 0x7A66, 0x7A75,
0x7A83, 0x7A92, 0x7AA0, 0x7AAF,
0x7ABD, 0x7ACB, 0x7AD9, 0x7AE7,
0x7AF5, 0x7B03, 0x7B11, 0x7B1F,
0x7B2D, 0x7B3A, 0x7B48, 0x7B55,
0x7B63, 0x7B70, 0x7B7D, 0x7B8B,
0x7B98, 0x7BA5, 0x7BB2, 0x7BBF,
0x7BCB, 0x7BD8, 0x7BE5, 0x7BF1,
0x7BFE, 0x7C0A, 0x7C17, 0x7C23,
0x7C2F, 0x7C3B, 0x7C47, 0x7C53,
0x7C5F, 0x7C6B, 0x7C77, 0x7C83,
0x7C8E, 0x7C9A, 0x7CA5, 0x7CB1,
0x7CBC, 0x7CC7, 0x7CD2, 0x7CDD,
0x7CE8, 0x7CF3, 0x7CFE, 0x7D09,
0x7D14, 0x7D1E, 0x7D29, 0x7D33,
0x7D3E, 0x7D48, 0x7D52, 0x7D5C,
0x7D67, 0x7D71, 0x7D7B, 0x7D84,
0x7D8E, 0x7D98, 0x7DA2, 0x7DAB,
0x7DB5, 0x7DBE, 0x7DC8, 0x7DD1,
0x7DDA, 0x7DE3, 0x7DEC, 0x7DF5,
0x7DFE, 0x7E07, 0x7E10, 0x7E18,
0x7E21, 0x7E29, 0x7E32, 0x7E3A,
0x7E42, 0x7E4B, 0x7E53, 0x7E5B,
0x7E63, 0x7E6B, 0x7E73, 0x7E7A,
0x7E82, 0x7E8A, 0x7E91, 0x7E99,
0x7EA0, 0x7EA7, 0x7EAF, 0x7EB6,
0x7EBD, 0x7EC4, 0x7ECB, 0x7ED2,
0x7ED8, 0x7EDF, 0x7EE6, 0x7EEC,
0x7EF3, 0x7EF9, 0x7EFF, 0x7F05,
0x7F0C, 0x7F12, 0x7F18, 0x7F1E,
0x7F23, 0x7F29, 0x7F2F, 0x7F35,
0x7F3A, 0x7F40, 0x7F45, 0x7F4A,
0x7F50, 0x7F55, 0x7F5A, 0x7F5F,
0x7F64, 0x7F69, 0x7F6D, 0x7F72,
0x7F77, 0x7F7B, 0x7F80, 0x7F84,
0x7F88, 0x7F8D, 0x7F91, 0x7F95,
0x7F99, 0x7F9D, 0x7FA1, 0x7FA4,
0x7FA8, 0x7FAC, 0x7FAF, 0x7FB3,
0x7FB6, 0x7FB9, 0x7FBD, 0x7FC0,
0x7FC3, 0x7FC6, 0x7FC9, 0x7FCC,
0x7FCE, 0x7FD1, 0x7FD4, 0x7FD6,
0x7FD9, 0x7FDB, 0x7FDD, 0x7FE0,
0x7FE2, 0x7FE4, 0x7FE6, 0x7FE8,
0x7FEA, 0x7FEB, 0x7FED, 0x7FEF,
0x7FF0, 0x7FF2, 0x7FF3, 0x7FF5,
0x7FF6, 0x7FF7, 0x7FF8, 0x7FF9,
0x7FFA, 0x7FFB, 0x7FFC, 0x7FFC,
0x7FFD, 0x7FFD, 0x7FFE, 0x7FFE,
0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF
};
const Int16 Short_Window_sine_fxp[SHORT_WINDOW] =
{
0x00C9, 0x025B, 0x03ED, 0x057F,
0x0711, 0x08A2, 0x0A33, 0x0BC4,
0x0D54, 0x0EE3, 0x1072, 0x1201,
0x138F, 0x151C, 0x16A8, 0x1833,
0x19BE, 0x1B47, 0x1CCF, 0x1E57,
0x1FDD, 0x2161, 0x22E5, 0x2467,
0x25E8, 0x2767, 0x28E5, 0x2A61,
0x2BDC, 0x2D55, 0x2ECC, 0x3041,
0x31B5, 0x3326, 0x3496, 0x3604,
0x376F, 0x38D9, 0x3A40, 0x3BA5,
0x3D07, 0x3E68, 0x3FC5, 0x4121,
0x427A, 0x43D0, 0x4524, 0x4675,
0x47C3, 0x490F, 0x4A58, 0x4B9D,
0x4CE0, 0x4E20, 0x4F5D, 0x5097,
0x51CE, 0x5302, 0x5432, 0x5560,
0x568A, 0x57B0, 0x58D3, 0x59F3,
0x5B0F, 0x5C28, 0x5D3E, 0x5E4F,
0x5F5D, 0x6068, 0x616E, 0x6271,
0x6370, 0x646C, 0x6563, 0x6656,
0x6746, 0x6832, 0x6919, 0x69FD,
0x6ADC, 0x6BB7, 0x6C8E, 0x6D61,
0x6E30, 0x6EFB, 0x6FC1, 0x7083,
0x7140, 0x71F9, 0x72AE, 0x735E,
0x740A, 0x74B2, 0x7555, 0x75F3,
0x768D, 0x7722, 0x77B3, 0x783F,
0x78C7, 0x794A, 0x79C8, 0x7A41,
0x7AB6, 0x7B26, 0x7B91, 0x7BF8,
0x7C59, 0x7CB6, 0x7D0E, 0x7D62,
0x7DB0, 0x7DFA, 0x7E3E, 0x7E7E,
0x7EB9, 0x7EEF, 0x7F21, 0x7F4D,
0x7F74, 0x7F97, 0x7FB4, 0x7FCD,
0x7FE1, 0x7FF0, 0x7FF9, 0x7FFE
};
const Int16 Long_Window_KBD_fxp[LONG_WINDOW] =
{
0x000A, 0x000E, 0x0012, 0x0015,
0x0019, 0x001C, 0x0020, 0x0023,
0x0026, 0x002A, 0x002D, 0x0030,
0x0034, 0x0038, 0x003B, 0x003F,
0x0043, 0x0047, 0x004B, 0x004F,
0x0053, 0x0057, 0x005B, 0x0060,
0x0064, 0x0069, 0x006D, 0x0072,
0x0077, 0x007C, 0x0081, 0x0086,
0x008B, 0x0091, 0x0096, 0x009C,
0x00A1, 0x00A7, 0x00AD, 0x00B3,
0x00B9, 0x00BF, 0x00C6, 0x00CC,
0x00D3, 0x00DA, 0x00E0, 0x00E7,
0x00EE, 0x00F5, 0x00FD, 0x0104,
0x010C, 0x0113, 0x011B, 0x0123,
0x012B, 0x0133, 0x013C, 0x0144,
0x014D, 0x0156, 0x015F, 0x0168,
0x0171, 0x017A, 0x0183, 0x018D,
0x0197, 0x01A1, 0x01AB, 0x01B5,
0x01BF, 0x01CA, 0x01D4, 0x01DF,
0x01EA, 0x01F5, 0x0200, 0x020C,
0x0217, 0x0223, 0x022F, 0x023B,
0x0247, 0x0253, 0x0260, 0x026D,
0x027A, 0x0287, 0x0294, 0x02A1,
0x02AF, 0x02BC, 0x02CA, 0x02D8,
0x02E7, 0x02F5, 0x0304, 0x0312,
0x0321, 0x0331, 0x0340, 0x034F,
0x035F, 0x036F, 0x037F, 0x038F,
0x03A0, 0x03B0, 0x03C1, 0x03D2,
0x03E3, 0x03F5, 0x0406, 0x0418,
0x042A, 0x043C, 0x044F, 0x0461,
0x0474, 0x0487, 0x049A, 0x04AE,
0x04C1, 0x04D5, 0x04E9, 0x04FD,
0x0512, 0x0526, 0x053B, 0x0550,
0x0566, 0x057B, 0x0591, 0x05A7,
0x05BD, 0x05D3, 0x05EA, 0x0601,
0x0618, 0x062F, 0x0646, 0x065E,
0x0676, 0x068E, 0x06A6, 0x06BF,
0x06D8, 0x06F1, 0x070A, 0x0723,
0x073D, 0x0757, 0x0771, 0x078C,
0x07A6, 0x07C1, 0x07DC, 0x07F7,
0x0813, 0x082F, 0x084B, 0x0867,
0x0884, 0x08A0, 0x08BD, 0x08DA,
0x08F8, 0x0916, 0x0933, 0x0952,
0x0970, 0x098F, 0x09AE, 0x09CD,
0x09EC, 0x0A0C, 0x0A2C, 0x0A4C,
0x0A6C, 0x0A8D, 0x0AAD, 0x0ACF,
0x0AF0, 0x0B11, 0x0B33, 0x0B55,
0x0B78, 0x0B9A, 0x0BBD, 0x0BE0,
0x0C03, 0x0C27, 0x0C4B, 0x0C6F,
0x0C93, 0x0CB8, 0x0CDD, 0x0D02,
0x0D27, 0x0D4D, 0x0D73, 0x0D99,
0x0DBF, 0x0DE6, 0x0E0C, 0x0E33,
0x0E5B, 0x0E82, 0x0EAA, 0x0ED2,
0x0EFB, 0x0F23, 0x0F4C, 0x0F75,
0x0F9F, 0x0FC8, 0x0FF2, 0x101C,
0x1047, 0x1071, 0x109C, 0x10C7,
0x10F3, 0x111E, 0x114A, 0x1176,
0x11A3, 0x11D0, 0x11FC, 0x122A,
0x1257, 0x1285, 0x12B3, 0x12E1,
0x130F, 0x133E, 0x136D, 0x139C,
0x13CB, 0x13FB, 0x142B, 0x145B,
0x148B, 0x14BC, 0x14ED, 0x151E,
0x1550, 0x1581, 0x15B3, 0x15E5,
0x1618, 0x164A, 0x167D, 0x16B0,
0x16E3, 0x1717, 0x174B, 0x177F,
0x17B3, 0x17E8, 0x181D, 0x1852,
0x1887, 0x18BC, 0x18F2, 0x1928,
0x195E, 0x1995, 0x19CB, 0x1A02,
0x1A39, 0x1A71, 0x1AA8, 0x1AE0,
0x1B18, 0x1B50, 0x1B89, 0x1BC1,
0x1BFA, 0x1C34, 0x1C6D, 0x1CA7,
0x1CE0, 0x1D1A, 0x1D55, 0x1D8F,
0x1DCA, 0x1E05, 0x1E40, 0x1E7B,
0x1EB7, 0x1EF2, 0x1F2E, 0x1F6B,
0x1FA7, 0x1FE4, 0x2020, 0x205D,
0x209B, 0x20D8, 0x2116, 0x2153,
0x2191, 0x21D0, 0x220E, 0x224D,
0x228B, 0x22CA, 0x2309, 0x2349,
0x2388, 0x23C8, 0x2408, 0x2448,
0x2488, 0x24C9, 0x2509, 0x254A,
0x258B, 0x25CC, 0x260E, 0x264F,
0x2691, 0x26D3, 0x2715, 0x2757,
0x2799, 0x27DC, 0x281F, 0x2861,
0x28A4, 0x28E8, 0x292B, 0x296E,
0x29B2, 0x29F6, 0x2A3A, 0x2A7E,
0x2AC2, 0x2B06, 0x2B4B, 0x2B8F,
0x2BD4, 0x2C19, 0x2C5E, 0x2CA3,
0x2CE9, 0x2D2E, 0x2D74, 0x2DB9,
0x2DFF, 0x2E45, 0x2E8B, 0x2ED1,
0x2F18, 0x2F5E, 0x2FA5, 0x2FEB,
0x3032, 0x3079, 0x30C0, 0x3107,
0x314E, 0x3195, 0x31DD, 0x3224,
0x326C, 0x32B4, 0x32FB, 0x3343,
0x338B, 0x33D3, 0x341B, 0x3463,
0x34AC, 0x34F4, 0x353D, 0x3585,
0x35CE, 0x3616, 0x365F, 0x36A8,
0x36F1, 0x373A, 0x3783, 0x37CC,
0x3815, 0x385E, 0x38A7, 0x38F0,
0x393A, 0x3983, 0x39CC, 0x3A16,
0x3A5F, 0x3AA9, 0x3AF2, 0x3B3C,
0x3B86, 0x3BCF, 0x3C19, 0x3C63,
0x3CAC, 0x3CF6, 0x3D40, 0x3D8A,
0x3DD3, 0x3E1D, 0x3E67, 0x3EB1,
0x3EFB, 0x3F45, 0x3F8E, 0x3FD8,
0x4022, 0x406C, 0x40B6, 0x4100,
0x414A, 0x4193, 0x41DD, 0x4227,
0x4271, 0x42BB, 0x4304, 0x434E,
0x4398, 0x43E1, 0x442B, 0x4475,
0x44BE, 0x4508, 0x4551, 0x459B,
0x45E4, 0x462E, 0x4677, 0x46C0,
0x4709, 0x4753, 0x479C, 0x47E5,
0x482E, 0x4877, 0x48C0, 0x4909,
0x4951, 0x499A, 0x49E3, 0x4A2B,
0x4A74, 0x4ABC, 0x4B04, 0x4B4D,
0x4B95, 0x4BDD, 0x4C25, 0x4C6D,
0x4CB5, 0x4CFC, 0x4D44, 0x4D8C,
0x4DD3, 0x4E1A, 0x4E62, 0x4EA9,
0x4EF0, 0x4F37, 0x4F7E, 0x4FC4,
0x500B, 0x5051, 0x5098, 0x50DE,
0x5124, 0x516A, 0x51B0, 0x51F6,
0x523B, 0x5281, 0x52C6, 0x530B,
0x5351, 0x5396, 0x53DA, 0x541F,
0x5464, 0x54A8, 0x54EC, 0x5530,
0x5574, 0x55B8, 0x55FC, 0x563F,
0x5683, 0x56C6, 0x5709, 0x574C,
0x578F, 0x57D1, 0x5814, 0x5856,
0x5898, 0x58DA, 0x591B, 0x595D,
0x599E, 0x59E0, 0x5A21, 0x5A61,
0x5AA2, 0x5AE3, 0x5B23, 0x5B63,
0x5BA3, 0x5BE3, 0x5C22, 0x5C62,
0x5CA1, 0x5CE0, 0x5D1F, 0x5D5D,
0x5D9C, 0x5DDA, 0x5E18, 0x5E56,
0x5E93, 0x5ED1, 0x5F0E, 0x5F4B,
0x5F87, 0x5FC4, 0x6000, 0x603D,
0x6079, 0x60B4, 0x60F0, 0x612B,
0x6166, 0x61A1, 0x61DC, 0x6216,
0x6250, 0x628A, 0x62C4, 0x62FE,
0x6337, 0x6370, 0x63A9, 0x63E2,
0x641A, 0x6452, 0x648A, 0x64C2,
0x64F9, 0x6531, 0x6568, 0x659E,
0x65D5, 0x660B, 0x6641, 0x6677,
0x66AD, 0x66E2, 0x6717, 0x674C,
0x6781, 0x67B5, 0x67E9, 0x681D,
0x6851, 0x6885, 0x68B8, 0x68EB,
0x691D, 0x6950, 0x6982, 0x69B4,
0x69E6, 0x6A17, 0x6A48, 0x6A79,
0x6AAA, 0x6ADB, 0x6B0B, 0x6B3B,
0x6B6A, 0x6B9A, 0x6BC9, 0x6BF8,
0x6C27, 0x6C55, 0x6C83, 0x6CB1,
0x6CDF, 0x6D0D, 0x6D3A, 0x6D67,
0x6D93, 0x6DC0, 0x6DEC, 0x6E18,
0x6E44, 0x6E6F, 0x6E9A, 0x6EC5,
0x6EF0, 0x6F1A, 0x6F44, 0x6F6E,
0x6F98, 0x6FC1, 0x6FEA, 0x7013,
0x703C, 0x7064, 0x708C, 0x70B4,
0x70DB, 0x7103, 0x712A, 0x7151,
0x7177, 0x719D, 0x71C3, 0x71E9,
0x720F, 0x7234, 0x7259, 0x727E,
0x72A2, 0x72C7, 0x72EB, 0x730E,
0x7332, 0x7355, 0x7378, 0x739B,
0x73BD, 0x73E0, 0x7402, 0x7424,
0x7445, 0x7466, 0x7487, 0x74A8,
0x74C9, 0x74E9, 0x7509, 0x7529,
0x7548, 0x7568, 0x7587, 0x75A5,
0x75C4, 0x75E2, 0x7601, 0x761E,
0x763C, 0x7659, 0x7676, 0x7693,
0x76B0, 0x76CC, 0x76E9, 0x7705,
0x7720, 0x773C, 0x7757, 0x7772,
0x778D, 0x77A8, 0x77C2, 0x77DC,
0x77F6, 0x780F, 0x7829, 0x7842,
0x785B, 0x7874, 0x788C, 0x78A5,
0x78BD, 0x78D5, 0x78EC, 0x7904,
0x791B, 0x7932, 0x7949, 0x795F,
0x7976, 0x798C, 0x79A2, 0x79B7,
0x79CD, 0x79E2, 0x79F7, 0x7A0C,
0x7A21, 0x7A35, 0x7A4A, 0x7A5E,
0x7A72, 0x7A85, 0x7A99, 0x7AAC,
0x7ABF, 0x7AD2, 0x7AE5, 0x7AF7,
0x7B09, 0x7B1B, 0x7B2D, 0x7B3F,
0x7B51, 0x7B62, 0x7B73, 0x7B84,
0x7B95, 0x7BA5, 0x7BB6, 0x7BC6,
0x7BD6, 0x7BE6, 0x7BF6, 0x7C05,
0x7C15, 0x7C24, 0x7C33, 0x7C42,
0x7C50, 0x7C5F, 0x7C6D, 0x7C7B,
0x7C89, 0x7C97, 0x7CA5, 0x7CB2,
0x7CC0, 0x7CCD, 0x7CDA, 0x7CE7,
0x7CF3, 0x7D00, 0x7D0C, 0x7D18,
0x7D25, 0x7D31, 0x7D3C, 0x7D48,
0x7D53, 0x7D5F, 0x7D6A, 0x7D75,
0x7D80, 0x7D8B, 0x7D95, 0x7DA0,
0x7DAA, 0x7DB4, 0x7DBE, 0x7DC8,
0x7DD2, 0x7DDC, 0x7DE5, 0x7DEF,
0x7DF8, 0x7E01, 0x7E0A, 0x7E13,
0x7E1C, 0x7E25, 0x7E2D, 0x7E36,
0x7E3E, 0x7E46, 0x7E4E, 0x7E56,
0x7E5E, 0x7E66, 0x7E6D, 0x7E75,
0x7E7C, 0x7E83, 0x7E8B, 0x7E92,
0x7E99, 0x7EA0, 0x7EA6, 0x7EAD,
0x7EB3, 0x7EBA, 0x7EC0, 0x7EC6,
0x7ECD, 0x7ED3, 0x7ED9, 0x7EDE,
0x7EE4, 0x7EEA, 0x7EF0, 0x7EF5,
0x7EFA, 0x7F00, 0x7F05, 0x7F0A,
0x7F0F, 0x7F14, 0x7F19, 0x7F1E,
0x7F23, 0x7F27, 0x7F2C, 0x7F30,
0x7F35, 0x7F39, 0x7F3D, 0x7F41,
0x7F46, 0x7F4A, 0x7F4E, 0x7F52,
0x7F55, 0x7F59, 0x7F5D, 0x7F60,
0x7F64, 0x7F68, 0x7F6B, 0x7F6E,
0x7F72, 0x7F75, 0x7F78, 0x7F7B,
0x7F7E, 0x7F81, 0x7F84, 0x7F87,
0x7F8A, 0x7F8D, 0x7F90, 0x7F92,
0x7F95, 0x7F97, 0x7F9A, 0x7F9C,
0x7F9F, 0x7FA1, 0x7FA4, 0x7FA6,
0x7FA8, 0x7FAA, 0x7FAC, 0x7FAE,
0x7FB1, 0x7FB3, 0x7FB5, 0x7FB6,
0x7FB8, 0x7FBA, 0x7FBC, 0x7FBE,
0x7FBF, 0x7FC1, 0x7FC3, 0x7FC4,
0x7FC6, 0x7FC8, 0x7FC9, 0x7FCB,
0x7FCC, 0x7FCD, 0x7FCF, 0x7FD0,
0x7FD1, 0x7FD3, 0x7FD4, 0x7FD5,
0x7FD6, 0x7FD8, 0x7FD9, 0x7FDA,
0x7FDB, 0x7FDC, 0x7FDD, 0x7FDE,
0x7FDF, 0x7FE0, 0x7FE1, 0x7FE2,
0x7FE3, 0x7FE4, 0x7FE4, 0x7FE5,
0x7FE6, 0x7FE7, 0x7FE8, 0x7FE8,
0x7FE9, 0x7FEA, 0x7FEA, 0x7FEB,
0x7FEC, 0x7FEC, 0x7FED, 0x7FEE,
0x7FEE, 0x7FEF, 0x7FEF, 0x7FF0,
0x7FF0, 0x7FF1, 0x7FF1, 0x7FF2,
0x7FF2, 0x7FF3, 0x7FF3, 0x7FF4,
0x7FF4, 0x7FF4, 0x7FF5, 0x7FF5,
0x7FF6, 0x7FF6, 0x7FF6, 0x7FF7,
0x7FF7, 0x7FF7, 0x7FF8, 0x7FF8,
0x7FF8, 0x7FF8, 0x7FF9, 0x7FF9,
0x7FF9, 0x7FF9, 0x7FFA, 0x7FFA,
0x7FFA, 0x7FFA, 0x7FFA, 0x7FFB,
0x7FFB, 0x7FFB, 0x7FFB, 0x7FFB,
0x7FFC, 0x7FFC, 0x7FFC, 0x7FFC,
0x7FFC, 0x7FFC, 0x7FFC, 0x7FFC,
0x7FFD, 0x7FFD, 0x7FFD, 0x7FFD,
0x7FFD, 0x7FFD, 0x7FFD, 0x7FFD,
0x7FFD, 0x7FFD, 0x7FFE, 0x7FFE,
0x7FFE, 0x7FFE, 0x7FFE, 0x7FFE,
0x7FFE, 0x7FFE, 0x7FFE, 0x7FFE,
0x7FFE, 0x7FFE, 0x7FFE, 0x7FFE,
0x7FFE, 0x7FFE, 0x7FFE, 0x7FFE,
0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF,
0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF,
0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF,
0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF,
0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF,
0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF,
0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF,
0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF,
0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF,
0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF
};
const Int16 Short_Window_KBD_fxp[SHORT_WINDOW] =
{
0x0001, 0x0004, 0x0008, 0x000D,
0x0014, 0x001D, 0x0029, 0x0039,
0x004C, 0x0063, 0x0080, 0x00A2,
0x00CB, 0x00FB, 0x0133, 0x0174,
0x01BE, 0x0214, 0x0275, 0x02E3,
0x035E, 0x03E8, 0x0481, 0x052B,
0x05E7, 0x06B4, 0x0795, 0x088A,
0x0993, 0x0AB2, 0x0BE7, 0x0D32,
0x0E94, 0x100E, 0x119F, 0x1347,
0x1507, 0x16DE, 0x18CC, 0x1AD0,
0x1CEB, 0x1F1A, 0x215F, 0x23B6,
0x2620, 0x289C, 0x2B27, 0x2DC0,
0x3066, 0x3317, 0x35D2, 0x3894,
0x3B5C, 0x3E28, 0x40F6, 0x43C4,
0x468F, 0x4956, 0x4C18, 0x4ED1,
0x5181, 0x5425, 0x56BC, 0x5944,
0x5BBB, 0x5E21, 0x6073, 0x62B1,
0x64DA, 0x66EC, 0x68E7, 0x6ACB,
0x6C96, 0x6E49, 0x6FE4, 0x7166,
0x72D0, 0x7421, 0x755B, 0x767E,
0x778A, 0x7881, 0x7962, 0x7A30,
0x7AEA, 0x7B92, 0x7C29, 0x7CB0,
0x7D28, 0x7D92, 0x7DF0, 0x7E42,
0x7E89, 0x7EC7, 0x7EFC, 0x7F2A,
0x7F50, 0x7F71, 0x7F8C, 0x7FA3,
0x7FB6, 0x7FC5, 0x7FD2, 0x7FDC,
0x7FE4, 0x7FEB, 0x7FF0, 0x7FF4,
0x7FF7, 0x7FF9, 0x7FFB, 0x7FFC,
0x7FFD, 0x7FFE, 0x7FFE, 0x7FFE,
0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF,
0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF,
0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF
};