| OLD | NEW |
| 1 /* Copyright (c) 2007-2008 CSIRO | 1 /* Copyright (c) 2007-2008 CSIRO |
| 2 Copyright (c) 2007-2009 Xiph.Org Foundation | 2 Copyright (c) 2007-2009 Xiph.Org Foundation |
| 3 Copyright (c) 2008-2009 Gregory Maxwell | 3 Copyright (c) 2008-2009 Gregory Maxwell |
| 4 Written by Jean-Marc Valin and Gregory Maxwell */ | 4 Written by Jean-Marc Valin and Gregory Maxwell */ |
| 5 /* | 5 /* |
| 6 Redistribution and use in source and binary forms, with or without | 6 Redistribution and use in source and binary forms, with or without |
| 7 modification, are permitted provided that the following conditions | 7 modification, are permitted provided that the following conditions |
| 8 are met: | 8 are met: |
| 9 | 9 |
| 10 - Redistributions of source code must retain the above copyright | 10 - Redistributions of source code must retain the above copyright |
| (...skipping 18 matching lines...) Expand all Loading... |
| 29 | 29 |
| 30 #ifndef BANDS_H | 30 #ifndef BANDS_H |
| 31 #define BANDS_H | 31 #define BANDS_H |
| 32 | 32 |
| 33 #include "arch.h" | 33 #include "arch.h" |
| 34 #include "modes.h" | 34 #include "modes.h" |
| 35 #include "entenc.h" | 35 #include "entenc.h" |
| 36 #include "entdec.h" | 36 #include "entdec.h" |
| 37 #include "rate.h" | 37 #include "rate.h" |
| 38 | 38 |
| 39 opus_int16 bitexact_cos(opus_int16 x); |
| 40 int bitexact_log2tan(int isin,int icos); |
| 41 |
| 39 /** Compute the amplitude (sqrt energy) in each of the bands | 42 /** Compute the amplitude (sqrt energy) in each of the bands |
| 40 * @param m Mode data | 43 * @param m Mode data |
| 41 * @param X Spectrum | 44 * @param X Spectrum |
| 42 * @param bandE Square root of the energy for each band (returned) | 45 * @param bandE Square root of the energy for each band (returned) |
| 43 */ | 46 */ |
| 44 void compute_band_energies(const CELTMode *m, const celt_sig *X, celt_ener *band
E, int end, int C, int LM); | 47 void compute_band_energies(const CELTMode *m, const celt_sig *X, celt_ener *band
E, int end, int C, int LM, int arch); |
| 45 | 48 |
| 46 /*void compute_noise_energies(const CELTMode *m, const celt_sig *X, const opus_v
al16 *tonality, celt_ener *bandE);*/ | 49 /*void compute_noise_energies(const CELTMode *m, const celt_sig *X, const opus_v
al16 *tonality, celt_ener *bandE);*/ |
| 47 | 50 |
| 48 /** Normalise each band of X such that the energy in each band is | 51 /** Normalise each band of X such that the energy in each band is |
| 49 equal to 1 | 52 equal to 1 |
| 50 * @param m Mode data | 53 * @param m Mode data |
| 51 * @param X Spectrum (returned normalised) | 54 * @param X Spectrum (returned normalised) |
| 52 * @param bandE Square root of the energy for each band | 55 * @param bandE Square root of the energy for each band |
| 53 */ | 56 */ |
| 54 void normalise_bands(const CELTMode *m, const celt_sig * OPUS_RESTRICT freq, cel
t_norm * OPUS_RESTRICT X, const celt_ener *bandE, int end, int C, int M); | 57 void normalise_bands(const CELTMode *m, const celt_sig * OPUS_RESTRICT freq, cel
t_norm * OPUS_RESTRICT X, const celt_ener *bandE, int end, int C, int M); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 * @param LM log2() of the number of 2.5 subframes in the frame | 101 * @param LM log2() of the number of 2.5 subframes in the frame |
| 99 * @param codedBands Last band to receive bits + 1 | 102 * @param codedBands Last band to receive bits + 1 |
| 100 * @param seed Random generator seed | 103 * @param seed Random generator seed |
| 101 * @param arch Run-time architecture (see opus_select_arch()) | 104 * @param arch Run-time architecture (see opus_select_arch()) |
| 102 */ | 105 */ |
| 103 void quant_all_bands(int encode, const CELTMode *m, int start, int end, | 106 void quant_all_bands(int encode, const CELTMode *m, int start, int end, |
| 104 celt_norm * X, celt_norm * Y, unsigned char *collapse_masks, | 107 celt_norm * X, celt_norm * Y, unsigned char *collapse_masks, |
| 105 const celt_ener *bandE, int *pulses, int shortBlocks, int spread, | 108 const celt_ener *bandE, int *pulses, int shortBlocks, int spread, |
| 106 int dual_stereo, int intensity, int *tf_res, opus_int32 total_bits, | 109 int dual_stereo, int intensity, int *tf_res, opus_int32 total_bits, |
| 107 opus_int32 balance, ec_ctx *ec, int M, int codedBands, opus_uint32 *seed, | 110 opus_int32 balance, ec_ctx *ec, int M, int codedBands, opus_uint32 *seed, |
| 108 int arch); | 111 int complexity, int arch, int disable_inv); |
| 109 | 112 |
| 110 void anti_collapse(const CELTMode *m, celt_norm *X_, | 113 void anti_collapse(const CELTMode *m, celt_norm *X_, |
| 111 unsigned char *collapse_masks, int LM, int C, int size, int start, | 114 unsigned char *collapse_masks, int LM, int C, int size, int start, |
| 112 int end, const opus_val16 *logE, const opus_val16 *prev1logE, | 115 int end, const opus_val16 *logE, const opus_val16 *prev1logE, |
| 113 const opus_val16 *prev2logE, const int *pulses, opus_uint32 seed, | 116 const opus_val16 *prev2logE, const int *pulses, opus_uint32 seed, |
| 114 int arch); | 117 int arch); |
| 115 | 118 |
| 116 opus_uint32 celt_lcg_rand(opus_uint32 seed); | 119 opus_uint32 celt_lcg_rand(opus_uint32 seed); |
| 117 | 120 |
| 118 int hysteresis_decision(opus_val16 val, const opus_val16 *thresholds, const opus
_val16 *hysteresis, int N, int prev); | 121 int hysteresis_decision(opus_val16 val, const opus_val16 *thresholds, const opus
_val16 *hysteresis, int N, int prev); |
| 119 | 122 |
| 120 #endif /* BANDS_H */ | 123 #endif /* BANDS_H */ |
| OLD | NEW |