1*aef9bcd9SKiyoung Kim /* 2*aef9bcd9SKiyoung Kim * Copyright (C) 2003 - 2016 Sony Corporation 3*aef9bcd9SKiyoung Kim * 4*aef9bcd9SKiyoung Kim * Licensed under the Apache License, Version 2.0 (the "License"); 5*aef9bcd9SKiyoung Kim * you may not use this file except in compliance with the License. 6*aef9bcd9SKiyoung Kim * You may obtain a copy of the License at 7*aef9bcd9SKiyoung Kim * 8*aef9bcd9SKiyoung Kim * http://www.apache.org/licenses/LICENSE-2.0 9*aef9bcd9SKiyoung Kim * 10*aef9bcd9SKiyoung Kim * Unless required by applicable law or agreed to in writing, software 11*aef9bcd9SKiyoung Kim * distributed under the License is distributed on an "AS IS" BASIS, 12*aef9bcd9SKiyoung Kim * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*aef9bcd9SKiyoung Kim * See the License for the specific language governing permissions and 14*aef9bcd9SKiyoung Kim * limitations under the License. 15*aef9bcd9SKiyoung Kim */ 16*aef9bcd9SKiyoung Kim 17*aef9bcd9SKiyoung Kim #ifndef _FIXP_LDAC_H 18*aef9bcd9SKiyoung Kim #define _FIXP_LDAC_H 19*aef9bcd9SKiyoung Kim 20*aef9bcd9SKiyoung Kim /*************************************************************************************************** 21*aef9bcd9SKiyoung Kim Macro Definitions 22*aef9bcd9SKiyoung Kim ***************************************************************************************************/ 23*aef9bcd9SKiyoung Kim 24*aef9bcd9SKiyoung Kim #define LDAC_MAX_32BIT ((INT32)0x7fffffffL) 25*aef9bcd9SKiyoung Kim #define LDAC_MIN_32BIT ((INT32)0x80000000L) 26*aef9bcd9SKiyoung Kim 27*aef9bcd9SKiyoung Kim #define LDAC_C_BLKFLT 31 28*aef9bcd9SKiyoung Kim 29*aef9bcd9SKiyoung Kim #define LDAC_Q_SETPCM 15 30*aef9bcd9SKiyoung Kim 31*aef9bcd9SKiyoung Kim #define LDAC_Q_MDCT_WIN 30 32*aef9bcd9SKiyoung Kim #define LDAC_Q_MDCT_COS 31 33*aef9bcd9SKiyoung Kim #define LDAC_Q_MDCT_SIN 31 34*aef9bcd9SKiyoung Kim 35*aef9bcd9SKiyoung Kim #define LDAC_Q_NORM1 15 36*aef9bcd9SKiyoung Kim #define LDAC_Q_NORM2 31 37*aef9bcd9SKiyoung Kim 38*aef9bcd9SKiyoung Kim #define LDAC_Q_QUANT1 47 39*aef9bcd9SKiyoung Kim #define LDAC_Q_QUANT2 0 40*aef9bcd9SKiyoung Kim #define LDAC_Q_QUANT3 15 41*aef9bcd9SKiyoung Kim #define LDAC_Q_QUANT4 47 42*aef9bcd9SKiyoung Kim 43*aef9bcd9SKiyoung Kim #define LDAC_Q_DEQUANT1 0 44*aef9bcd9SKiyoung Kim #define LDAC_Q_DEQUANT2 0 45*aef9bcd9SKiyoung Kim #define LDAC_Q_DEQUANT3 31 46*aef9bcd9SKiyoung Kim 47*aef9bcd9SKiyoung Kim #define LDAC_Q_NORM (15+(LDAC_Q_NORM2-LDAC_Q_NORM1)) 48*aef9bcd9SKiyoung Kim 49*aef9bcd9SKiyoung Kim /*************************************************************************************************** 50*aef9bcd9SKiyoung Kim Function Declarations 51*aef9bcd9SKiyoung Kim ***************************************************************************************************/ 52*aef9bcd9SKiyoung Kim /* func_fixp_ldac.c */ 53*aef9bcd9SKiyoung Kim DECLFUNC INT32 sftrnd_ldac(INT32, int); 54*aef9bcd9SKiyoung Kim #define lsft_ldac(x, n) ((x) << (n)) 55*aef9bcd9SKiyoung Kim #define rsft_ldac(x, n) ((x) >> (n)) 56*aef9bcd9SKiyoung Kim #define rsft_ro_ldac(x, n) (((x) + (1 << (n-1))) >> (n)) 57*aef9bcd9SKiyoung Kim 58*aef9bcd9SKiyoung Kim #define lsftrnd_ldac(x, n) (INT32)((INT64)(x) << (-(n))) 59*aef9bcd9SKiyoung Kim #define rsftrnd_ldac(x, n) (INT32)(((INT64)(x) + ((INT64)1 << ((n)-1))) >> (n)) 60*aef9bcd9SKiyoung Kim #define mul_lsftrnd_ldac(x, y, n) (INT32)(((INT64)(x) * (INT64)(y)) << (-(n))) 61*aef9bcd9SKiyoung Kim #define mul_rsftrnd_ldac(x, y, n) (INT32)((((INT64)(x) * (INT64)(y)) + ((INT64)1 << ((n)-1))) >> (n)) 62*aef9bcd9SKiyoung Kim 63*aef9bcd9SKiyoung Kim DECLFUNC int get_bit_length_ldac(INT32); 64*aef9bcd9SKiyoung Kim DECLFUNC INT32 get_absmax_ldac(INT32 *, int); 65*aef9bcd9SKiyoung Kim 66*aef9bcd9SKiyoung Kim #endif /* _FIXP_LDAC_H */ 67*aef9bcd9SKiyoung Kim 68