Package org.xiph.speex
Class Vbr
- java.lang.Object
-
- org.xiph.speex.Vbr
-
public class Vbr extends java.lang.Object
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
Fields Modifier and Type Field Description private float
accum_sum
private float
average_energy
private int
consec_noise
private float
energy_alpha
static float[][]
hb_thresh
Wideband threshhold table.private float
last_energy
private float[]
last_log_energy
private float
last_pitch_coef
private float
last_quality
static int
MIN_ENERGY
static float[][]
nb_thresh
Narrowband threshhold table.private float
noise_accum
private float
noise_accum_count
private float
noise_level
static float
NOISE_POW
private float
soft_pitch
static float[][]
uhb_thresh
Ultra-wideband threshhold table.static int
VBR_MEMORY_SIZE
-
Constructor Summary
Constructors Constructor Description Vbr()
Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.
-
-
-
Field Detail
-
VBR_MEMORY_SIZE
public static final int VBR_MEMORY_SIZE
- See Also:
- Constant Field Values
-
MIN_ENERGY
public static final int MIN_ENERGY
- See Also:
- Constant Field Values
-
NOISE_POW
public static final float NOISE_POW
- See Also:
- Constant Field Values
-
nb_thresh
public static final float[][] nb_thresh
Narrowband threshhold table.
-
hb_thresh
public static final float[][] hb_thresh
Wideband threshhold table.
-
uhb_thresh
public static final float[][] uhb_thresh
Ultra-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
-
-
Method Detail
-
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
-
-