@ -41,7 +41,13 @@
* with 1 / 3 resolution , 19 < pitch_delay < 85
* integers only , 85 < = pitch_delay < = 143
*/
int ff_acelp_decode_8bit_to_1st_delay3 ( int ac_index ) ;
static inline int ff_acelp_decode_8bit_to_1st_delay3 ( int ac_index )
{
ac_index + = 58 ;
if ( ac_index > 254 )
ac_index = 3 * ac_index - 510 ;
return ac_index ;
}
/**
* @ brief Decode pitch delay of the second subframe encoded by 5 or 6 bits
@ -58,9 +64,11 @@ int ff_acelp_decode_8bit_to_1st_delay3(int ac_index);
* @ remark The routine is used in G .729 @ @ 8 k , AMR @ @ 10.2 k , AMR @ @ 7.95 k ,
* AMR @ @ 7.4 k for the second subframe .
*/
int ff_acelp_decode_5_6_bit_to_2nd_delay3 (
int ac_index ,
int pitch_delay_min ) ;
static inline int ff_acelp_decode_5_6_bit_to_2nd_delay3 ( int ac_index ,
int pitch_delay_min )
{
return 3 * pitch_delay_min + ac_index - 2 ;
}
/**
* @ brief Decode pitch delay with 1 / 3 precision .
@ -78,9 +86,16 @@ int ff_acelp_decode_5_6_bit_to_2nd_delay3(
* @ remark The routine is used in G .729 @ @ 6.4 k , AMR @ @ 6.7 k , AMR @ @ 5.9 k ,
* AMR @ @ 5.15 k , AMR @ @ 4.75 k for the second subframe .
*/
int ff_acelp_decode_4bit_to_2nd_delay3 (
int ac_index ,
int pitch_delay_min ) ;
static inline int ff_acelp_decode_4bit_to_2nd_delay3 ( int ac_index ,
int pitch_delay_min )
{
if ( ac_index < 4 )
return 3 * ( ac_index + pitch_delay_min ) ;
else if ( ac_index < 12 )
return 3 * pitch_delay_min + ac_index + 6 ;
else
return 3 * ( ac_index + pitch_delay_min ) - 18 ;
}
/**
* @ brief Decode pitch delay of the first subframe encoded by 9 bits
@ -95,7 +110,13 @@ int ff_acelp_decode_4bit_to_2nd_delay3(
*
* @ remark The routine is used in AMR @ @ 12.2 k for the first and third subframes .
*/
int ff_acelp_decode_9bit_to_1st_delay6 ( int ac_index ) ;
static inline int ff_acelp_decode_9bit_to_1st_delay6 ( int ac_index )
{
if ( ac_index < 463 )
return ac_index + 105 ;
else
return 6 * ( ac_index - 368 ) ;
}
/**
* @ brief Decode pitch delay of the second subframe encoded by 6 bits
@ -111,9 +132,11 @@ int ff_acelp_decode_9bit_to_1st_delay6(int ac_index);
*
* @ remark The routine is used in AMR @ @ 12.2 k for the second and fourth subframes .
*/
int ff_acelp_decode_6bit_to_2nd_delay6 (
int ac_index ,
int pitch_delay_min ) ;
static inline int ff_acelp_decode_6bit_to_2nd_delay6 ( int ac_index ,
int pitch_delay_min )
{
return 6 * pitch_delay_min + ac_index - 3 ;
}
/**
* @ brief Update past quantized energies