1*1295d682SXin Li /* Copyright (c) 2009-2010 Xiph.Org Foundation 2*1295d682SXin Li Written by Jean-Marc Valin */ 3*1295d682SXin Li /* 4*1295d682SXin Li Redistribution and use in source and binary forms, with or without 5*1295d682SXin Li modification, are permitted provided that the following conditions 6*1295d682SXin Li are met: 7*1295d682SXin Li 8*1295d682SXin Li - Redistributions of source code must retain the above copyright 9*1295d682SXin Li notice, this list of conditions and the following disclaimer. 10*1295d682SXin Li 11*1295d682SXin Li - Redistributions in binary form must reproduce the above copyright 12*1295d682SXin Li notice, this list of conditions and the following disclaimer in the 13*1295d682SXin Li documentation and/or other materials provided with the distribution. 14*1295d682SXin Li 15*1295d682SXin Li THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 16*1295d682SXin Li ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 17*1295d682SXin Li LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 18*1295d682SXin Li A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER 19*1295d682SXin Li OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 20*1295d682SXin Li EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21*1295d682SXin Li PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 22*1295d682SXin Li PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 23*1295d682SXin Li LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 24*1295d682SXin Li NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25*1295d682SXin Li SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26*1295d682SXin Li */ 27*1295d682SXin Li 28*1295d682SXin Li #ifndef PLC_H 29*1295d682SXin Li #define PLC_H 30*1295d682SXin Li 31*1295d682SXin Li #include "arch.h" 32*1295d682SXin Li #include "common.h" 33*1295d682SXin Li 34*1295d682SXin Li #if defined(OPUS_X86_MAY_HAVE_SSE4_1) 35*1295d682SXin Li #include "x86/celt_lpc_sse.h" 36*1295d682SXin Li #endif 37*1295d682SXin Li 38*1295d682SXin Li #define LPC_ORDER 24 39*1295d682SXin Li 40*1295d682SXin Li void _celt_lpc(opus_val16 *_lpc, const opus_val32 *ac, int p); 41*1295d682SXin Li 42*1295d682SXin Li void celt_fir( 43*1295d682SXin Li const opus_val16 *x, 44*1295d682SXin Li const opus_val16 *num, 45*1295d682SXin Li opus_val16 *y, 46*1295d682SXin Li int N, 47*1295d682SXin Li int ord); 48*1295d682SXin Li 49*1295d682SXin Li void celt_iir(const opus_val32 *x, 50*1295d682SXin Li const opus_val16 *den, 51*1295d682SXin Li opus_val32 *y, 52*1295d682SXin Li int N, 53*1295d682SXin Li int ord, 54*1295d682SXin Li opus_val16 *mem); 55*1295d682SXin Li 56*1295d682SXin Li int _celt_autocorr(const opus_val16 *x, opus_val32 *ac, 57*1295d682SXin Li const opus_val16 *window, int overlap, int lag, int n); 58*1295d682SXin Li 59*1295d682SXin Li #endif /* PLC_H */ 60