Class Vbr

java.lang.Object
org.xiph.speex.Vbr

public class Vbr extends 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 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_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
  • 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