Layer III


Data Structures

struct  sideinfo
struct  fixedfloat
 table for requantization. More...

Defines

#define sfb_16000_long   sfb_22050_long
#define sfb_12000_long   sfb_16000_long
 MPEG 2.5 scalefactor band widths.
#define sfb_11025_long   sfb_12000_long
#define sfb_12000_short   sfb_16000_short
#define sfb_11025_short   sfb_12000_short
#define sfb_12000_mixed   sfb_16000_mixed
#define sfb_11025_mixed   sfb_12000_mixed
#define MASK(cache, sz, bits)   (((cache) >> ((sz) - (bits))) & ((1 << (bits)) - 1))
#define MASK1BIT(cache, sz)   ((cache) & (1 << ((sz) - 1)))

Enumerations

enum  { count1table_select = 0x01, scalefac_scale = 0x02, preflag = 0x04, mixed_block_flag = 0x08 }
enum  { I_STEREO = 0x1, MS_STEREO = 0x2 }

Functions

static enum mad_error III_sideinfo (struct mad_bitptr *ptr, unsigned int nch, int lsf, struct sideinfo *si, unsigned int *data_bitlen, unsigned int *priv_bitlen)
 decode frame side information from a bitstream.
static unsigned int III_scalefactors_lsf (struct mad_bitptr *ptr, struct channel *channel, struct channel *gr1ch, int mode_extension)
 decode channel scalefactors for LSF from a bitstream.
static unsigned int III_scalefactors (struct mad_bitptr *ptr, struct channel *channel, struct channel const *gr0ch, unsigned int scfsi)
 decode channel scalefactors of one granule from a bitstream.
static void III_exponents (struct channel const *channel, unsigned char const *sfbwidth, signed int exponents[39])
 The Layer III formula for requantization and scaling is defined by section 2.4.3.4.7.1 of ISO/IEC 11172-3, as follows:.
static mad_fixed_t III_requantize (unsigned int value, signed int exp)
 requantize one (positive) value.
static enum mad_error III_huffdecode (struct mad_bitptr *ptr, mad_fixed_t xr[576], struct channel *channel, unsigned char const *sfbwidth, unsigned int part2_length)
 decode Huffman code words of one channel of one granule.
static void III_reorder (mad_fixed_t xr[576], struct channel const *channel, unsigned char const sfbwidth[39])
 reorder frequency lines of a short block into subband order.
static enum mad_error III_stereo (mad_fixed_t xr[2][576], struct granule const *granule, struct mad_header *header, unsigned char const *sfbwidth)
 perform joint stereo processing on a granule.
static void III_aliasreduce (mad_fixed_t xr[576], int lines)
 perform frequency line alias reduction.
static void fastsdct (mad_fixed_t const x[9], mad_fixed_t y[18])
static void sdctII (mad_fixed_t const x[18], mad_fixed_t X[18])
static void dctIV (mad_fixed_t const y[18], mad_fixed_t X[18])
static void imdct36 (mad_fixed_t const x[18], mad_fixed_t y[36])
 perform X[18]->x[36] IMDCT using Szu-Wei Lee's fast algorithm.
static void III_imdct_l (mad_fixed_t const X[18], mad_fixed_t z[36], unsigned int block_type)
 perform IMDCT and windowing for long blocks.
static void III_imdct_s (mad_fixed_t const X[18], mad_fixed_t z[36])
 perform IMDCT and windowing for short blocks.
static void III_overlap (mad_fixed_t const output[36], mad_fixed_t overlap[18], mad_fixed_t sample[18][32], unsigned int sb)
 perform overlap-add of windowed IMDCT outputs.
static void III_overlap_z (mad_fixed_t overlap[18], mad_fixed_t sample[18][32], unsigned int sb)
 perform "overlap-add" of zero IMDCT outputs.
static void III_freqinver (mad_fixed_t sample[18][32], unsigned int sb)
 perform subband frequency inversion for odd sample lines.
static enum mad_error III_decode (struct mad_bitptr *ptr, struct mad_frame *frame, struct sideinfo *si, unsigned int nch)
 decode frame main_data.
int mad_layer_III (struct mad_stream *stream, struct mad_frame *frame)
 decode a single Layer III frame.

Variables

struct {
   unsigned char   slen1
   unsigned char   slen2
sflen_table [16]
static unsigned char const nsfb_table [6][3][4]
 number of LSF scalefactor band values.
static unsigned char const sfb_48000_long []
 MPEG-1 scalefactor band widths.
static unsigned char const sfb_44100_long []
static unsigned char const sfb_32000_long []
static unsigned char const sfb_48000_short []
static unsigned char const sfb_44100_short []
static unsigned char const sfb_32000_short []
static unsigned char const sfb_48000_mixed []
static unsigned char const sfb_44100_mixed []
static unsigned char const sfb_32000_mixed []
static unsigned char const sfb_24000_long []
 MPEG-2 scalefactor band widths.
static unsigned char const sfb_22050_long []
static unsigned char const sfb_24000_short []
static unsigned char const sfb_22050_short []
static unsigned char const sfb_16000_short []
static unsigned char const sfb_24000_mixed []
static unsigned char const sfb_22050_mixed []
static unsigned char const sfb_16000_mixed []
static unsigned char const sfb_8000_long []
static unsigned char const sfb_8000_short []
static unsigned char const sfb_8000_mixed []
struct {
   unsigned char const *   l
   unsigned char const *   s
   unsigned char const *   m
sfbwidth_table [9]
static unsigned char const pretab [22]
 scalefactor band preemphasis (used only when preflag is set).
static struct fixedfloat rq_table [8207]
static mad_fixed_t const root_table [7]
 fractional powers of two.
static mad_fixed_t const cs [8]
 coefficients for aliasing reduction.
static mad_fixed_t const ca [8]
static mad_fixed_t const imdct_s [6][6]
 IMDCT coefficients for short blocks.
static mad_fixed_t const window_l [36]
 windowing coefficients for long blocks.
static mad_fixed_t const window_s [12]
 windowing coefficients for short blocks.
static mad_fixed_t const is_table [7]
 coefficients for intensity stereo processing.
static mad_fixed_t const is_lsf_table [2][15]
 coefficients for LSF intensity stereo processing.

Define Documentation

#define MASK ( cache,
sz,
bits   )     (((cache) >> ((sz) - (bits))) & ((1 << (bits)) - 1))

Definition at line 926 of file layer3.c.

Referenced by III_huffdecode().

#define MASK1BIT ( cache,
sz   )     ((cache) & (1 << ((sz) - 1)))

Definition at line 928 of file layer3.c.

Referenced by III_huffdecode().

#define sfb_11025_long   sfb_12000_long

Definition at line 275 of file layer3.c.

#define sfb_11025_mixed   sfb_12000_mixed

Definition at line 294 of file layer3.c.

#define sfb_11025_short   sfb_12000_short

Definition at line 284 of file layer3.c.

#define sfb_12000_long   sfb_16000_long

MPEG 2.5 scalefactor band widths.

derived from public sources

Definition at line 274 of file layer3.c.

#define sfb_12000_mixed   sfb_16000_mixed

Definition at line 293 of file layer3.c.

#define sfb_12000_short   sfb_16000_short

Definition at line 283 of file layer3.c.

#define sfb_16000_long   sfb_22050_long

Definition at line 223 of file layer3.c.


Enumeration Type Documentation

anonymous enum

Enumerator:
count1table_select 
scalefac_scale 
preflag 
mixed_block_flag 

Definition at line 55 of file layer3.c.

anonymous enum

Enumerator:
I_STEREO 
MS_STEREO 

Definition at line 62 of file layer3.c.


Function Documentation

static void dctIV ( mad_fixed_t const   y[18],
mad_fixed_t  X[18] 
) [inline, static]

Definition at line 1692 of file layer3.c.

References MAD_F, mad_f_mul, scale(), and sdctII().

Referenced by imdct36().

Here is the call graph for this function:

static void fastsdct ( mad_fixed_t const   x[9],
mad_fixed_t  y[18] 
) [static]

Definition at line 1579 of file layer3.c.

References MAD_F, and mad_f_mul.

Referenced by sdctII().

static void III_aliasreduce ( mad_fixed_t  xr[576],
int  lines 
) [static]

perform frequency line alias reduction.

Definition at line 1540 of file layer3.c.

References ca, cs, MAD_F_ML0, MAD_F_MLA, and MAD_F_MLZ.

Referenced by III_decode().

static enum mad_error III_decode ( struct mad_bitptr ptr,
struct mad_frame frame,
struct sideinfo si,
unsigned int  nch 
) [static]

static void III_exponents ( struct channel const *  channel,
unsigned char const *  sfbwidth,
signed int  exponents[39] 
) [static]

The Layer III formula for requantization and scaling is defined by section 2.4.3.4.7.1 of ISO/IEC 11172-3, as follows:.

long blocks:
xr[i] = sign(is[i]) * abs(is[i])^(4/3) *
2^((1/4) * (global_gain - 210)) *
2^-(scalefac_multiplier *
(scalefac_l[sfb] + preflag * pretab[sfb]))

short blocks:
   xr[i] = sign(is[i]) * abs(is[i])^(4/3) *
           2^((1/4) * (global_gain - 210 - 8 * subblock_gain[w])) *
           2^-(scalefac_multiplier * scalefac_s[sfb][w])
       
where:
scalefac_multiplier = (scalefac_scale + 1) / 2

The routines III_exponents() and III_requantize() facilitate this calculation. calculate scalefactor exponents.

Definition at line 816 of file layer3.c.

References l, mixed_block_flag, preflag, pretab, and scalefac_scale.

Referenced by III_huffdecode().

static void III_freqinver ( mad_fixed_t  sample[18][32],
unsigned int  sb 
) [static]

perform subband frequency inversion for odd sample lines.

Definition at line 2308 of file layer3.c.

Referenced by III_decode().

static enum mad_error III_huffdecode ( struct mad_bitptr ptr,
mad_fixed_t  xr[576],
struct channel *  channel,
unsigned char const *  sfbwidth,
unsigned int  part2_length 
) [static]

static void III_imdct_l ( mad_fixed_t const   X[18],
mad_fixed_t  z[36],
unsigned int  block_type 
) [static]

perform IMDCT and windowing for long blocks.

Definition at line 2058 of file layer3.c.

References imdct36(), mad_f_mul, window_l, and window_s.

Referenced by III_decode().

Here is the call graph for this function:

static void III_imdct_s ( mad_fixed_t const   X[18],
mad_fixed_t  z[36] 
) [static]

perform IMDCT and windowing for short blocks.

Definition at line 2144 of file layer3.c.

References imdct_s, MAD_F_ML0, MAD_F_MLA, MAD_F_MLZ, mad_f_mul, s, and window_s.

Referenced by III_decode().

static void III_overlap ( mad_fixed_t const   output[36],
mad_fixed_t  overlap[18],
mad_fixed_t  sample[18][32],
unsigned int  sb 
) [static]

perform overlap-add of windowed IMDCT outputs.

Definition at line 2222 of file layer3.c.

Referenced by III_decode().

static void III_overlap_z ( mad_fixed_t  overlap[18],
mad_fixed_t  sample[18][32],
unsigned int  sb 
) [inline, static]

perform "overlap-add" of zero IMDCT outputs.

Definition at line 2269 of file layer3.c.

Referenced by III_decode().

static void III_reorder ( mad_fixed_t  xr[576],
struct channel const *  channel,
unsigned char const   sfbwidth[39] 
) [static]

reorder frequency lines of a short block into subband order.

Definition at line 1282 of file layer3.c.

References l, mixed_block_flag, and huffquad::w.

Referenced by III_decode().

static mad_fixed_t III_requantize ( unsigned int  value,
signed int  exp 
) [static]

requantize one (positive) value.

Definition at line 886 of file layer3.c.

References CHAR_BIT, fixedfloat::exponent, MAD_F_MAX, mad_f_mul, mad_f_todouble, fixedfloat::mantissa, root_table, and rq_table.

Referenced by III_huffdecode().

static unsigned int III_scalefactors ( struct mad_bitptr ptr,
struct channel *  channel,
struct channel const *  gr0ch,
unsigned int  scfsi 
) [static]

decode channel scalefactors of one granule from a bitstream.

Definition at line 716 of file layer3.c.

References mad_bit_length(), mad_bit_read(), mixed_block_flag, sflen_table, slen1, and slen2.

Referenced by III_decode().

Here is the call graph for this function:

static unsigned int III_scalefactors_lsf ( struct mad_bitptr ptr,
struct channel *  channel,
struct channel *  gr1ch,
int  mode_extension 
) [static]

decode channel scalefactors for LSF from a bitstream.

Definition at line 602 of file layer3.c.

References I_STEREO, mad_bit_length(), mad_bit_read(), mixed_block_flag, nsfb_table, and preflag.

Referenced by III_decode().

Here is the call graph for this function:

static enum mad_error III_sideinfo ( struct mad_bitptr ptr,
unsigned int  nch,
int  lsf,
struct sideinfo si,
unsigned int *  data_bitlen,
unsigned int *  priv_bitlen 
) [static]

static enum mad_error III_stereo ( mad_fixed_t  xr[2][576],
struct granule const *  granule,
struct mad_header header,
unsigned char const *  sfbwidth 
) [static]

static void imdct36 ( mad_fixed_t const   x[18],
mad_fixed_t  y[36] 
) [inline, static]

perform X[18]->x[36] IMDCT using Szu-Wei Lee's fast algorithm.

Definition at line 1735 of file layer3.c.

References dctIV().

Referenced by III_imdct_l().

Here is the call graph for this function:

int mad_layer_III ( struct mad_stream stream,
struct mad_frame frame 
)

static void sdctII ( mad_fixed_t const   x[18],
mad_fixed_t  X[18] 
) [inline, static]

Definition at line 1647 of file layer3.c.

References fastsdct(), MAD_F, mad_f_mul, and scale().

Referenced by dctIV().

Here is the call graph for this function:


Variable Documentation

mad_fixed_t const ca[8] [static]

Initial value:

 {
  -MAD_F(0x083b5fe7) , -MAD_F(0x078c36d2) ,
  -MAD_F(0x05039814) , -MAD_F(0x02e91dd1) ,
  -MAD_F(0x0183603a) , -MAD_F(0x00a7cb87) ,
  -MAD_F(0x003a2847) , -MAD_F(0x000f27b4) 
}

Definition at line 379 of file layer3.c.

Referenced by III_aliasreduce().

mad_fixed_t const cs[8] [static]

Initial value:

 {
  +MAD_F(0x0db84a81) , +MAD_F(0x0e1b9d7f) ,
  +MAD_F(0x0f31adcf) , +MAD_F(0x0fbba815) ,
  +MAD_F(0x0feda417) , +MAD_F(0x0ffc8fc8) ,
  +MAD_F(0x0fff964c) , +MAD_F(0x0ffff8d3) 
}
coefficients for aliasing reduction.

derived from Table B.9 of ISO/IEC 11172-3

c[] = { -0.6, -0.535, -0.33, -0.185, -0.095, -0.041, -0.0142, -0.0037 } cs[i] = 1 / sqrt(1 + c[i]^2) ca[i] = c[i] / sqrt(1 + c[i]^2)

Definition at line 371 of file layer3.c.

Referenced by III_aliasreduce().

mad_fixed_t const imdct_s[6][6] [static]

IMDCT coefficients for short blocks.

derived from section 2.4.3.4.10.2 of ISO/IEC 11172-3

imdct_s[i/even][k] = cos((PI / 24) * (2 * (i / 2) + 7) * (2 * k + 1)) imdct_s[i /odd][k] = cos((PI / 24) * (2 * (6 + (i-1)/2) + 7) * (2 * k + 1))

Definition at line 394 of file layer3.c.

Referenced by III_imdct_s().

mad_fixed_t const is_lsf_table[2][15] [static]

coefficients for LSF intensity stereo processing.

derived from section 2.4.3.2 of ISO/IEC 13818-3

is_lsf_table[0][i] = (1 / sqrt(sqrt(2)))^(i + 1) is_lsf_table[1][i] = (1 / sqrt(2)) ^(i + 1)

Definition at line 472 of file layer3.c.

Referenced by III_stereo().

mad_fixed_t const is_table[7] [static]

Initial value:

 {
  MAD_F(0x00000000) ,
  MAD_F(0x0361962f) ,
  MAD_F(0x05db3d74) ,
  MAD_F(0x08000000) ,
  MAD_F(0x0a24c28c) ,
  MAD_F(0x0c9e69d1) ,
  MAD_F(0x10000000) 
}
coefficients for intensity stereo processing.

derived from section 2.4.3.4.9.3 of ISO/IEC 11172-3

is_ratio[i] = tan(i * (PI / 12)) is_table[i] = is_ratio[i] / (1 + is_ratio[i])

Definition at line 454 of file layer3.c.

Referenced by III_stereo().

unsigned { ... } l [inherited]

Definition at line 308 of file layer3.c.

unsigned { ... } m [inherited]

Definition at line 310 of file layer3.c.

unsigned char const nsfb_table[6][3][4] [static]

Initial value:

 {
  { {  6,  5,  5, 5 },
    {  9,  9,  9, 9 },
    {  6,  9,  9, 9 } },

  { {  6,  5,  7, 3 },
    {  9,  9, 12, 6 },
    {  6,  9, 12, 6 } },

  { { 11, 10,  0, 0 },
    { 18, 18,  0, 0 },
    { 15, 18,  0, 0 } },

  { {  7,  7,  7, 0 },
    { 12, 12, 12, 0 },
    {  6, 15, 12, 0 } },

  { {  6,  6,  6, 3 },
    { 12,  9,  9, 6 },
    {  6, 12,  9, 6 } },

  { {  8,  8,  5, 0 },
    { 15, 12,  9, 0 },
    {  6, 18,  9, 0 } }
}
number of LSF scalefactor band values.

derived from section 2.4.3.2 of ISO/IEC 13818-3

Definition at line 114 of file layer3.c.

Referenced by III_scalefactors_lsf().

unsigned char const pretab[22] [static]

Initial value:

 {
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 3, 2, 0
}
scalefactor band preemphasis (used only when preflag is set).

derived from Table B.6 of ISO/IEC 11172-3

Definition at line 328 of file layer3.c.

Referenced by III_exponents().

mad_fixed_t const root_table[7] [static]

Initial value:

 {
  MAD_F(0x09837f05) ,
  MAD_F(0x0b504f33) ,
  MAD_F(0x0d744fcd) ,
  MAD_F(0x10000000) ,
  MAD_F(0x1306fe0a) ,
  MAD_F(0x16a09e66) ,
  MAD_F(0x1ae89f99) 
}
fractional powers of two.

used for requantization and joint stereo decoding

root_table[3 + x] = 2^(x/4)

Definition at line 352 of file layer3.c.

Referenced by III_requantize(), and III_stereo().

struct fixedfloat rq_table[8207] [static]

Referenced by III_requantize().

unsigned { ... } s [inherited]

Definition at line 309 of file layer3.c.

unsigned char const sfb_16000_mixed[] [static]

Initial value:

 {
     6,  6,  6,  6,  6,  6,
    6,  6,  6,  8,  8,  8, 10, 10, 10, 12,
              12, 12, 14, 14, 14, 18, 18, 18, 24, 24,
              24, 30, 30, 30, 40, 40, 40, 18, 18, 18
}

Definition at line 263 of file layer3.c.

unsigned char const sfb_16000_short[] [static]

Initial value:

 {
   4,  4,  4,  4,  4,  4,  4,  4,  4,  6,  6,  6,  8,
   8,  8, 10, 10, 10, 12, 12, 12, 14, 14, 14, 18, 18,
  18, 24, 24, 24, 30, 30, 30, 40, 40, 40, 18, 18, 18
}

Definition at line 240 of file layer3.c.

unsigned char const sfb_22050_long[] [static]

Initial value:

 {
   6,  6,  6,  6,  6,  6,  8, 10, 12,  14,  16,
  20, 24, 28, 32, 38, 46, 52, 60, 68,  58,  54
}

Definition at line 218 of file layer3.c.

unsigned char const sfb_22050_mixed[] [static]

Initial value:

 {
     6,  6,  6,  6,  6,  6,
    6,  6,  6,  6,  6,  6,  8,  8,  8, 10,
              10, 10, 14, 14, 14, 18, 18, 18, 26, 26,
              26, 32, 32, 32, 42, 42, 42, 18, 18, 18
}

Definition at line 255 of file layer3.c.

unsigned char const sfb_22050_short[] [static]

Initial value:

 {
   4,  4,  4,  4,  4,  4,  4,  4,  4,  6,  6,  6,  6,
   6,  6,  8,  8,  8, 10, 10, 10, 14, 14, 14, 18, 18,
  18, 26, 26, 26, 32, 32, 32, 42, 42, 42, 18, 18, 18
}

Definition at line 233 of file layer3.c.

unsigned char const sfb_24000_long[] [static]

Initial value:

 {
   6,  6,  6,  6,  6,  6,  8, 10, 12,  14,  16,
  18, 22, 26, 32, 38, 46, 54, 62, 70,  76,  36
}
MPEG-2 scalefactor band widths.

derived from Table B.2 of ISO/IEC 13818-3

Definition at line 212 of file layer3.c.

unsigned char const sfb_24000_mixed[] [static]

Initial value:

 {
     6,  6,  6,  6,  6,  6,
    6,  6,  6,  8,  8,  8, 10, 10, 10, 12,
              12, 12, 14, 14, 14, 18, 18, 18, 24, 24,
              24, 32, 32, 32, 44, 44, 44, 12, 12, 12
}

Definition at line 247 of file layer3.c.

unsigned char const sfb_24000_short[] [static]

Initial value:

 {
   4,  4,  4,  4,  4,  4,  4,  4,  4,  6,  6,  6,  8,
   8,  8, 10, 10, 10, 12, 12, 12, 14, 14, 14, 18, 18,
  18, 24, 24, 24, 32, 32, 32, 44, 44, 44, 12, 12, 12
}

Definition at line 226 of file layer3.c.

unsigned char const sfb_32000_long[] [static]

Initial value:

 {
   4,  4,  4,  4,  4,  4,  6,  6,  8,  10,  12,
  16, 20, 24, 30, 38, 46, 56, 68, 84, 102,  26
}

Definition at line 157 of file layer3.c.

unsigned char const sfb_32000_mixed[] [static]

Initial value:

 {
     4,  4,  4,  4,  4,  4,  6,  6,
    4,  4,  4,  6,  6,  6,  8,  8,  8, 12,
              12, 12, 16, 16, 16, 20, 20, 20, 26, 26,
              26, 34, 34, 34, 42, 42, 42, 12, 12, 12
}

Definition at line 200 of file layer3.c.

unsigned char const sfb_32000_short[] [static]

Initial value:

 {
   4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  6,
   6,  6,  8,  8,  8, 12, 12, 12, 16, 16, 16, 20, 20,
  20, 26, 26, 26, 34, 34, 34, 42, 42, 42, 12, 12, 12
}

Definition at line 177 of file layer3.c.

unsigned char const sfb_44100_long[] [static]

Initial value:

 {
   4,  4,  4,  4,  4,  4,  6,  6,  8,   8,  10,
  12, 16, 20, 24, 28, 34, 42, 50, 54,  76, 158
}

Definition at line 151 of file layer3.c.

unsigned char const sfb_44100_mixed[] [static]

Initial value:

 {
     4,  4,  4,  4,  4,  4,  6,  6,
    4,  4,  4,  6,  6,  6,  8,  8,  8, 10,
              10, 10, 12, 12, 12, 14, 14, 14, 18, 18,
              18, 22, 22, 22, 30, 30, 30, 56, 56, 56
}

Definition at line 192 of file layer3.c.

unsigned char const sfb_44100_short[] [static]

Initial value:

 {
   4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  6,
   6,  6,  8,  8,  8, 10, 10, 10, 12, 12, 12, 14, 14,
  14, 18, 18, 18, 22, 22, 22, 30, 30, 30, 56, 56, 56
}

Definition at line 170 of file layer3.c.

unsigned char const sfb_48000_long[] [static]

Initial value:

 {
   4,  4,  4,  4,  4,  4,  6,  6,  6,   8,  10,
  12, 16, 18, 22, 28, 34, 40, 46, 54,  54, 192
}
MPEG-1 scalefactor band widths.

derived from Table B.8 of ISO/IEC 11172-3

Definition at line 145 of file layer3.c.

unsigned char const sfb_48000_mixed[] [static]

Initial value:

 {
     4,  4,  4,  4,  4,  4,  6,  6,
    4,  4,  4,  6,  6,  6,  6,  6,  6, 10,
              10, 10, 12, 12, 12, 14, 14, 14, 16, 16,
              16, 20, 20, 20, 26, 26, 26, 66, 66, 66
}

Definition at line 184 of file layer3.c.

unsigned char const sfb_48000_short[] [static]

Initial value:

 {
   4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  6,
   6,  6,  6,  6,  6, 10, 10, 10, 12, 12, 12, 14, 14,
  14, 16, 16, 16, 20, 20, 20, 26, 26, 26, 66, 66, 66
}

Definition at line 163 of file layer3.c.

unsigned char const sfb_8000_long[] [static]

Initial value:

 {
  12, 12, 12, 12, 12, 12, 16, 20, 24,  28,  32,
  40, 48, 56, 64, 76, 90,  2,  2,  2,   2,   2
}

Definition at line 278 of file layer3.c.

unsigned char const sfb_8000_mixed[] [static]

Initial value:

 {
    12, 12, 12,
    4,  4,  4,  8,  8,  8, 12, 12, 12, 16, 16, 16,
              20, 20, 20, 24, 24, 24, 28, 28, 28, 36, 36, 36,
               2,  2,  2,  2,  2,  2,  2,  2,  2, 26, 26, 26
}

Definition at line 299 of file layer3.c.

unsigned char const sfb_8000_short[] [static]

Initial value:

 {
   8,  8,  8,  8,  8,  8,  8,  8,  8, 12, 12, 12, 16,
  16, 16, 20, 20, 20, 24, 24, 24, 28, 28, 28, 36, 36,
  36,  2,  2,  2,  2,  2,  2,  2,  2,  2, 26, 26, 26
}

Definition at line 287 of file layer3.c.

struct { ... } sfbwidth_table[9] [static]

Referenced by III_decode().

struct { ... } sflen_table[16] [static]

Referenced by III_scalefactors().

unsigned { ... } slen1 [inherited]

Definition at line 100 of file layer3.c.

unsigned { ... } slen2 [inherited]

Definition at line 101 of file layer3.c.

mad_fixed_t const window_l[36] [static]

Initial value:

 {
  MAD_F(0x00b2aa3e) , MAD_F(0x0216a2a2) ,
  MAD_F(0x03768962) , MAD_F(0x04cfb0e2) ,
  MAD_F(0x061f78aa) , MAD_F(0x07635284) ,
  MAD_F(0x0898c779) , MAD_F(0x09bd7ca0) ,
  MAD_F(0x0acf37ad) , MAD_F(0x0bcbe352) ,
  MAD_F(0x0cb19346) , MAD_F(0x0d7e8807) ,

  MAD_F(0x0e313245) , MAD_F(0x0ec835e8) ,
  MAD_F(0x0f426cb5) , MAD_F(0x0f9ee890) ,
  MAD_F(0x0fdcf549) , MAD_F(0x0ffc19fd) ,
  MAD_F(0x0ffc19fd) , MAD_F(0x0fdcf549) ,
  MAD_F(0x0f9ee890) , MAD_F(0x0f426cb5) ,
  MAD_F(0x0ec835e8) , MAD_F(0x0e313245) ,

  MAD_F(0x0d7e8807) , MAD_F(0x0cb19346) ,
  MAD_F(0x0bcbe352) , MAD_F(0x0acf37ad) ,
  MAD_F(0x09bd7ca0) , MAD_F(0x0898c779) ,
  MAD_F(0x07635284) , MAD_F(0x061f78aa) ,
  MAD_F(0x04cfb0e2) , MAD_F(0x03768962) ,
  MAD_F(0x0216a2a2) , MAD_F(0x00b2aa3e) ,
}
windowing coefficients for long blocks.

derived from section 2.4.3.4.10.3 of ISO/IEC 11172-3

window_l[i] = sin((PI / 36) * (i + 1/2))

Definition at line 406 of file layer3.c.

Referenced by III_imdct_l().

mad_fixed_t const window_s[12] [static]

Initial value:

 {
  MAD_F(0x0216a2a2) , MAD_F(0x061f78aa) ,
  MAD_F(0x09bd7ca0) , MAD_F(0x0cb19346) ,
  MAD_F(0x0ec835e8) , MAD_F(0x0fdcf549) ,
  MAD_F(0x0fdcf549) , MAD_F(0x0ec835e8) ,
  MAD_F(0x0cb19346) , MAD_F(0x09bd7ca0) ,
  MAD_F(0x061f78aa) , MAD_F(0x0216a2a2) ,
}
windowing coefficients for short blocks.

derived from section 2.4.3.4.10.3 of ISO/IEC 11172-3

window_s[i] = sin((PI / 12) * (i + 1/2))

Definition at line 437 of file layer3.c.

Referenced by III_imdct_l(), and III_imdct_s().


Generated on Tue Jun 10 12:14:18 2008 for libmad by  doxygen 1.5.5