2 (c) Copyright 1998-2001 - Tord Jansson
3 ======================================
5 This file is part of the BladeEnc MP3 Encoder, based on
6 ISO's reference code for MPEG Layer 3 compression, and might
7 contain smaller or larger sections that are directly taken
8 from ISO's reference code.
10 All changes to the ISO reference code herein are either
11 copyrighted by Tord Jansson (tord.jansson@swipnet.se)
12 or sublicensed to Tord Jansson by a third party.
14 BladeEnc is free software; you can redistribute this file
15 and/or modify it under the terms of the GNU Lesser General Public
16 License as published by the Free Software Foundation; either
17 version 2.1 of the License, or (at your option) any later version.
21 ------------ Changes ------------
23 2000-12-11 Andre Piotrowski
29 - removed fft() prototype from "encoder.h" to this file
30 - removed the fft configuration switches from "subs.c" to this file
31 - implemented ORG_SHORT_CW_LIMIT
35 - bug fix: include encoder.h for definition of ORG_BUFFERS
36 - clear some backward compatability flags for 0.93.10
39 /**********************************************************************
40 * ISO MPEG Audio Subgroup Software Simulation Group (1996)
41 * ISO 13818-3 MPEG-2 Audio Encoder - Lower Sampling Frequency Extension
43 * $Id: l3psy.h,v 1.1 2002/01/10 17:30:00 kramm Exp $
47 * Revision 1.1 2002/01/10 17:30:00 kramm
48 * Version 0.94.1 of the bladeenc mp3 encoder
50 * Revision 1.1 1996/02/14 04:04:23 rowlands
53 * Received from Mike Coleman
54 **********************************************************************/
67 /* ======================================================================================== */
68 /* keeping backward compatability */
69 /* ======================================================================================== */
71 #define ORG_NUMLINES_NORM 0 /* 0 = don't overwrite long numline entries with short numline entries */
72 #define ORG_BLOCK_SELECT 0 /* 0 = ISO draft paper states slightly different block selection */
73 #define ORG_SHORT_CW_LIMIT 0 /* 0 = ISO draft paper says first element starts at 6/4 = 1 (not 2) */
79 /* #define CBANDS 63 */
82 #define HBLKSIZE_s 129
90 /* #define switch_pe 1800 */
104 short int savebuf[2048],
111 /* FLOAT snr32[32], */
112 double ratio_d[SBMAX_l],
113 double ratio_ds[SBMAX_s][3],
118 void psycho_anal_init (double sfreq);
120 void psycho_anal_exit (void);
126 void fft (FLOAT[], FLOAT[], FLOAT[], FLOAT[], int);
131 Switches for configuring the fft in "subs.c"
134 /* Do we want to reorder the data? */
135 #define REORDER_DATA 0 /* no need to do that */
137 /* To get the inverse fft, set NORMAL_FFT to 0 */
138 #define NORMAL_FFT 1 /* si */
140 /* Try this to speed up the fft when using non-complex sequences */
141 #define REAL_SEQUENCE 1 /* no complex values needed */
143 /* We assume, the real data gets prepacked externally */
144 #define PREPACKED 1 /* yes */
146 /* No one needs all the phi values in layer 3 !!! */
147 #define USED_VALUES_ONLY 1
148 #define LONG_FFT_MIN_IDX 0
149 #define LONG_FFT_MAX_IDX 5
150 #if ORG_SHORT_CW_LIMIT
151 #define SHORT_FFT_MIN_IDX 2 /* ( 6+2)/4 */
152 #define SHORT_FFT_MAX_IDX 51 /* (206+2)/4 - 1 */
153 #else /* according to ISO */
154 #define SHORT_FFT_MIN_IDX 1 /* 6/4 */
155 #define SHORT_FFT_MAX_IDX 50 /* 206/4 - 1 */
162 #endif /* __L3PSY__ */