| OLD | NEW |
| 1 /* libFLAC - Free Lossless Audio Codec library | 1 /* libFLAC - Free Lossless Audio Codec library |
| 2 * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson | 2 * Copyright (C) 2000-2009 Josh Coalson |
| 3 * Copyright (C) 2011-2014 Xiph.Org Foundation |
| 3 * | 4 * |
| 4 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 6 * are met: | 7 * are met: |
| 7 * | 8 * |
| 8 * - Redistributions of source code must retain the above copyright | 9 * - Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| 10 * | 11 * |
| 11 * - Redistributions in binary form must reproduce the above copyright | 12 * - Redistributions in binary form must reproduce the above copyright |
| 12 * notice, this list of conditions and the following disclaimer in the | 13 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 16 matching lines...) Expand all Loading... |
| 29 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 30 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 30 */ | 31 */ |
| 31 | 32 |
| 32 #ifndef FLAC__PRIVATE__FIXED_H | 33 #ifndef FLAC__PRIVATE__FIXED_H |
| 33 #define FLAC__PRIVATE__FIXED_H | 34 #define FLAC__PRIVATE__FIXED_H |
| 34 | 35 |
| 35 #ifdef HAVE_CONFIG_H | 36 #ifdef HAVE_CONFIG_H |
| 36 #include <config.h> | 37 #include <config.h> |
| 37 #endif | 38 #endif |
| 38 | 39 |
| 40 #include "private/cpu.h" |
| 39 #include "private/float.h" | 41 #include "private/float.h" |
| 40 #include "FLAC/format.h" | 42 #include "FLAC/format.h" |
| 41 | 43 |
| 42 /* | 44 /* |
| 43 * FLAC__fixed_compute_best_predictor() | 45 * FLAC__fixed_compute_best_predictor() |
| 44 * -------------------------------------------------------------------- | 46 * -------------------------------------------------------------------- |
| 45 * Compute the best fixed predictor and the expected bits-per-sample | 47 * Compute the best fixed predictor and the expected bits-per-sample |
| 46 * of the residual signal for each order. The _wide() version uses | 48 * of the residual signal for each order. The _wide() version uses |
| 47 * 64-bit integers which is statistically necessary when bits-per- | 49 * 64-bit integers which is statistically necessary when bits-per- |
| 48 * sample + log2(blocksize) > 30 | 50 * sample + log2(blocksize) > 30 |
| 49 * | 51 * |
| 50 * IN data[0,data_len-1] | 52 * IN data[0,data_len-1] |
| 51 * IN data_len | 53 * IN data_len |
| 52 * OUT residual_bits_per_sample[0,FLAC__MAX_FIXED_ORDER] | 54 * OUT residual_bits_per_sample[0,FLAC__MAX_FIXED_ORDER] |
| 53 */ | 55 */ |
| 54 #ifndef FLAC__INTEGER_ONLY_LIBRARY | 56 #ifndef FLAC__INTEGER_ONLY_LIBRARY |
| 55 unsigned FLAC__fixed_compute_best_predictor(const FLAC__int32 data[], unsigned d
ata_len, FLAC__float residual_bits_per_sample[FLAC__MAX_FIXED_ORDER+1]); | 57 unsigned FLAC__fixed_compute_best_predictor(const FLAC__int32 data[], unsigned d
ata_len, FLAC__float residual_bits_per_sample[FLAC__MAX_FIXED_ORDER+1]); |
| 58 unsigned FLAC__fixed_compute_best_predictor_wide(const FLAC__int32 data[], unsig
ned data_len, FLAC__float residual_bits_per_sample[FLAC__MAX_FIXED_ORDER+1]); |
| 56 # ifndef FLAC__NO_ASM | 59 # ifndef FLAC__NO_ASM |
| 57 # ifdef FLAC__CPU_IA32 | 60 # if (defined FLAC__CPU_IA32 || defined FLAC__CPU_X86_64) && defined FLAC__HAS_
X86INTRIN |
| 58 # ifdef FLAC__HAS_NASM | 61 # ifdef FLAC__SSE2_SUPPORTED |
| 59 unsigned FLAC__fixed_compute_best_predictor_asm_ia32_mmx_cmov(const FLAC__int32
data[], unsigned data_len, FLAC__float residual_bits_per_sample[FLAC__MAX_FIXED_
ORDER+1]); | 62 unsigned FLAC__fixed_compute_best_predictor_intrin_sse2(const FLAC__int32 data[]
, unsigned data_len, FLAC__float residual_bits_per_sample[FLAC__MAX_FIXED_ORDER
+ 1]); |
| 63 unsigned FLAC__fixed_compute_best_predictor_wide_intrin_sse2(const FLAC__int32 d
ata[], unsigned data_len, FLAC__float residual_bits_per_sample[FLAC__MAX_FIXED_O
RDER + 1]); |
| 64 # endif |
| 65 # ifdef FLAC__SSSE3_SUPPORTED |
| 66 unsigned FLAC__fixed_compute_best_predictor_intrin_ssse3(const FLAC__int32 data[
], unsigned data_len, FLAC__float residual_bits_per_sample[FLAC__MAX_FIXED_ORDER
+1]); |
| 67 unsigned FLAC__fixed_compute_best_predictor_wide_intrin_ssse3(const FLAC__int32
data[], unsigned data_len, FLAC__float residual_bits_per_sample[FLAC__MAX_FIXED_
ORDER + 1]); |
| 60 # endif | 68 # endif |
| 61 # endif | 69 # endif |
| 70 # if defined FLAC__CPU_IA32 && defined FLAC__HAS_NASM |
| 71 unsigned FLAC__fixed_compute_best_predictor_asm_ia32_mmx_cmov(const FLAC__int32
data[], unsigned data_len, FLAC__float residual_bits_per_sample[FLAC__MAX_FIXED_
ORDER+1]); |
| 72 # endif |
| 62 # endif | 73 # endif |
| 63 unsigned FLAC__fixed_compute_best_predictor_wide(const FLAC__int32 data[], unsig
ned data_len, FLAC__float residual_bits_per_sample[FLAC__MAX_FIXED_ORDER+1]); | |
| 64 #else | 74 #else |
| 65 unsigned FLAC__fixed_compute_best_predictor(const FLAC__int32 data[], unsigned d
ata_len, FLAC__fixedpoint residual_bits_per_sample[FLAC__MAX_FIXED_ORDER+1]); | 75 unsigned FLAC__fixed_compute_best_predictor(const FLAC__int32 data[], unsigned d
ata_len, FLAC__fixedpoint residual_bits_per_sample[FLAC__MAX_FIXED_ORDER+1]); |
| 66 unsigned FLAC__fixed_compute_best_predictor_wide(const FLAC__int32 data[], unsig
ned data_len, FLAC__fixedpoint residual_bits_per_sample[FLAC__MAX_FIXED_ORDER+1]
); | 76 unsigned FLAC__fixed_compute_best_predictor_wide(const FLAC__int32 data[], unsig
ned data_len, FLAC__fixedpoint residual_bits_per_sample[FLAC__MAX_FIXED_ORDER+1]
); |
| 67 #endif | 77 #endif |
| 68 | 78 |
| 69 /* | 79 /* |
| 70 * FLAC__fixed_compute_residual() | 80 * FLAC__fixed_compute_residual() |
| 71 * -------------------------------------------------------------------- | 81 * -------------------------------------------------------------------- |
| 72 * Compute the residual signal obtained from sutracting the predicted | 82 * Compute the residual signal obtained from sutracting the predicted |
| 73 * signal from the original. | 83 * signal from the original. |
| (...skipping 14 matching lines...) Expand all Loading... |
| 88 * IN residual[0,data_len-1] residual signal | 98 * IN residual[0,data_len-1] residual signal |
| 89 * IN data_len length of original signal | 99 * IN data_len length of original signal |
| 90 * IN order <= FLAC__MAX_FIXED_ORDER fixed-predictor order | 100 * IN order <= FLAC__MAX_FIXED_ORDER fixed-predictor order |
| 91 * *** IMPORTANT: the caller must pass in the historical samples: | 101 * *** IMPORTANT: the caller must pass in the historical samples: |
| 92 * IN data[-order,-1] previously-reconstructed historical sa
mples | 102 * IN data[-order,-1] previously-reconstructed historical sa
mples |
| 93 * OUT data[0,data_len-1] original signal | 103 * OUT data[0,data_len-1] original signal |
| 94 */ | 104 */ |
| 95 void FLAC__fixed_restore_signal(const FLAC__int32 residual[], unsigned data_len,
unsigned order, FLAC__int32 data[]); | 105 void FLAC__fixed_restore_signal(const FLAC__int32 residual[], unsigned data_len,
unsigned order, FLAC__int32 data[]); |
| 96 | 106 |
| 97 #endif | 107 #endif |
| OLD | NEW |