Package org.xiph.speex
Class Vbr
java.lang.Object
org.xiph.speex.Vbr
This class analyses the signal to help determine what bitrate to use when
the Varible BitRate option has been selected.
- Version:
- $Revision: 1.2 $
- Author:
- Marc Gimpel, Wimba S.A. (mgimpel@horizonwimba.com)
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate float
private float
private int
private float
static final float[][]
Wideband threshhold table.private float
private float[]
private float
private float
static final int
static final float[][]
Narrowband threshhold table.private float
private float
private float
static final float
private float
static final float[][]
Ultra-wideband threshhold table.static final int
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfloat
analysis
(float[] sig, int len, int pitch, float pitch_coef) This function should analyse the signal and decide how critical the coding error will be perceptually.
-
Field Details
-
VBR_MEMORY_SIZE
public static final int VBR_MEMORY_SIZE- See Also:
-
MIN_ENERGY
public static final int MIN_ENERGY- See Also:
-
NOISE_POW
public static final float NOISE_POW- See Also:
-
nb_thresh
public static final float[][] nb_threshNarrowband threshhold table. -
hb_thresh
public static final float[][] hb_threshWideband threshhold table. -
uhb_thresh
public static final float[][] uhb_threshUltra-wideband threshhold table. -
energy_alpha
private float energy_alpha -
average_energy
private float average_energy -
last_energy
private float last_energy -
last_log_energy
private float[] last_log_energy -
accum_sum
private float accum_sum -
last_pitch_coef
private float last_pitch_coef -
soft_pitch
private float soft_pitch -
last_quality
private float last_quality -
noise_level
private float noise_level -
noise_accum
private float noise_accum -
noise_accum_count
private float noise_accum_count -
consec_noise
private int consec_noise
-
-
Constructor Details
-
Vbr
public Vbr()Constructor
-
-
Method Details
-
analysis
public float analysis(float[] sig, int len, int pitch, float pitch_coef) This function should analyse the signal and decide how critical the coding error will be perceptually. The following factors should be taken into account:- Attacks (positive energy derivative) should be coded with more bits
- Stationary voiced segments should receive more bits
- Segments with (very) low absolute energy should receive less bits (maybe only shaped noise?)
- DTX for near-zero energy?
- Stationary fricative segments should have less bits
- Temporal masking: when energy slope is decreasing, decrease the bit-rate
- Decrease bit-rate for males (low pitch)?
- (wideband only) less bits in the high-band when signal is very non-stationary (harder to notice high-frequency noise)???
- Parameters:
sig
- - signal.len
- - signal length.pitch
- - signal pitch.pitch_coef
- - pitch coefficient.- Returns:
- quality
-