Class 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 Detail

      • 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 Detail

      • Vbr

        public Vbr()
        Constructor
    • 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