LCOV - code coverage report
Current view: top level - media/libopus/silk - NSQ.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 38 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 2 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /***********************************************************************
       2             : Copyright (c) 2014 Vidyo.
       3             : Copyright (c) 2006-2011, Skype Limited. All rights reserved.
       4             : Redistribution and use in source and binary forms, with or without
       5             : modification, are permitted provided that the following conditions
       6             : are met:
       7             : - Redistributions of source code must retain the above copyright notice,
       8             : this list of conditions and the following disclaimer.
       9             : - Redistributions in binary form must reproduce the above copyright
      10             : notice, this list of conditions and the following disclaimer in the
      11             : documentation and/or other materials provided with the distribution.
      12             : - Neither the name of Internet Society, IETF or IETF Trust, nor the
      13             : names of specific contributors, may be used to endorse or promote
      14             : products derived from this software without specific prior written
      15             : permission.
      16             : THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
      17             : AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
      18             : IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
      19             : ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
      20             : LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
      21             : CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
      22             : SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
      23             : INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
      24             : CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
      25             : ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
      26             : POSSIBILITY OF SUCH DAMAGE.
      27             : ***********************************************************************/
      28             : #ifndef SILK_NSQ_H
      29             : #define SILK_NSQ_H
      30             : 
      31             : #include "SigProc_FIX.h"
      32             : 
      33             : #undef silk_short_prediction_create_arch_coef
      34             : 
      35           0 : static OPUS_INLINE opus_int32 silk_noise_shape_quantizer_short_prediction_c(const opus_int32 *buf32, const opus_int16 *coef16, opus_int order)
      36             : {
      37             :     opus_int32 out;
      38           0 :     silk_assert( order == 10 || order == 16 );
      39             : 
      40             :     /* Avoids introducing a bias because silk_SMLAWB() always rounds to -inf */
      41           0 :     out = silk_RSHIFT( order, 1 );
      42           0 :     out = silk_SMLAWB( out, buf32[  0 ], coef16[ 0 ] );
      43           0 :     out = silk_SMLAWB( out, buf32[ -1 ], coef16[ 1 ] );
      44           0 :     out = silk_SMLAWB( out, buf32[ -2 ], coef16[ 2 ] );
      45           0 :     out = silk_SMLAWB( out, buf32[ -3 ], coef16[ 3 ] );
      46           0 :     out = silk_SMLAWB( out, buf32[ -4 ], coef16[ 4 ] );
      47           0 :     out = silk_SMLAWB( out, buf32[ -5 ], coef16[ 5 ] );
      48           0 :     out = silk_SMLAWB( out, buf32[ -6 ], coef16[ 6 ] );
      49           0 :     out = silk_SMLAWB( out, buf32[ -7 ], coef16[ 7 ] );
      50           0 :     out = silk_SMLAWB( out, buf32[ -8 ], coef16[ 8 ] );
      51           0 :     out = silk_SMLAWB( out, buf32[ -9 ], coef16[ 9 ] );
      52             : 
      53           0 :     if( order == 16 )
      54             :     {
      55           0 :         out = silk_SMLAWB( out, buf32[ -10 ], coef16[ 10 ] );
      56           0 :         out = silk_SMLAWB( out, buf32[ -11 ], coef16[ 11 ] );
      57           0 :         out = silk_SMLAWB( out, buf32[ -12 ], coef16[ 12 ] );
      58           0 :         out = silk_SMLAWB( out, buf32[ -13 ], coef16[ 13 ] );
      59           0 :         out = silk_SMLAWB( out, buf32[ -14 ], coef16[ 14 ] );
      60           0 :         out = silk_SMLAWB( out, buf32[ -15 ], coef16[ 15 ] );
      61             :     }
      62           0 :     return out;
      63             : }
      64             : 
      65             : #define silk_noise_shape_quantizer_short_prediction(in, coef, coefRev, order, arch)  ((void)arch,silk_noise_shape_quantizer_short_prediction_c(in, coef, order))
      66             : 
      67           0 : static OPUS_INLINE opus_int32 silk_NSQ_noise_shape_feedback_loop_c(const opus_int32 *data0, opus_int32 *data1, const opus_int16 *coef, opus_int order)
      68             : {
      69             :     opus_int32 out;
      70             :     opus_int32 tmp1, tmp2;
      71             :     opus_int j;
      72             : 
      73           0 :     tmp2 = data0[0];
      74           0 :     tmp1 = data1[0];
      75           0 :     data1[0] = tmp2;
      76             : 
      77           0 :     out = silk_RSHIFT(order, 1);
      78           0 :     out = silk_SMLAWB(out, tmp2, coef[0]);
      79             : 
      80           0 :     for (j = 2; j < order; j += 2) {
      81           0 :         tmp2 = data1[j - 1];
      82           0 :         data1[j - 1] = tmp1;
      83           0 :         out = silk_SMLAWB(out, tmp1, coef[j - 1]);
      84           0 :         tmp1 = data1[j + 0];
      85           0 :         data1[j + 0] = tmp2;
      86           0 :         out = silk_SMLAWB(out, tmp2, coef[j]);
      87             :     }
      88           0 :     data1[order - 1] = tmp1;
      89           0 :     out = silk_SMLAWB(out, tmp1, coef[order - 1]);
      90             :     /* Q11 -> Q12 */
      91           0 :     out = silk_LSHIFT32( out, 1 );
      92           0 :     return out;
      93             : }
      94             : 
      95             : #define silk_NSQ_noise_shape_feedback_loop(data0, data1, coef, order, arch)  ((void)arch,silk_NSQ_noise_shape_feedback_loop_c(data0, data1, coef, order))
      96             : 
      97             : #if defined(OPUS_ARM_MAY_HAVE_NEON_INTR)
      98             : #include "arm/NSQ_neon.h"
      99             : #endif
     100             : 
     101             : #endif /* SILK_NSQ_H */

Generated by: LCOV version 1.13