Class NbEncoder

  • All Implemented Interfaces:
    Codebook, Encoder

    public class NbEncoder
    extends NbCodec
    implements Encoder
    Narrowband Speex Encoder
    Version:
    $Revision: 1.2 $
    Author:
    Marc Gimpel, Wimba S.A. (mgimpel@horizonwimba.com)
    • Field Detail

      • NB_QUALITY_MAP

        public static final int[] NB_QUALITY_MAP
        The Narrowband Quality map indicates which narrowband submode to use for the given narrowband quality setting
      • bounded_pitch

        private int bounded_pitch
      • pitch

        private int[] pitch
        Next frame should not rely on previous frames for pitch
      • pre_mem2

        private float pre_mem2
      • exc2Buf

        private float[] exc2Buf
        1-element memory for pre-emphasis
      • exc2Idx

        private int exc2Idx
        "Pitch enhanced" excitation
      • swBuf

        private float[] swBuf
        "Pitch enhanced" excitation
      • swIdx

        private int swIdx
        Weighted signal buffer
      • window

        private float[] window
        Start of weighted signal frame
      • buf2

        private float[] buf2
        Temporary (Hanning) window
      • autocorr

        private float[] autocorr
        2nd temporary buffer
      • lagWindow

        private float[] lagWindow
        auto-correlation
      • lsp

        private float[] lsp
        Window applied to auto-correlation
      • old_lsp

        private float[] old_lsp
        LSPs for current frame
      • interp_lsp

        private float[] interp_lsp
        LSPs for previous frame
      • interp_lpc

        private float[] interp_lpc
        Interpolated LSPs
      • bw_lpc1

        private float[] bw_lpc1
        Interpolated LPCs
      • bw_lpc2

        private float[] bw_lpc2
        LPCs after bandwidth expansion by gamma1 for perceptual weighting
      • rc

        private float[] rc
        LPCs after bandwidth expansion by gamma2 for perceptual weighting
      • mem_sw

        private float[] mem_sw
        Reflection coefficients
      • mem_sw_whole

        private float[] mem_sw_whole
        Filter memory for perceptually-weighted signal
      • mem_exc

        private float[] mem_exc
        Filter memory for perceptually-weighted signal (whole frame)
      • vbr

        private Vbr vbr
        Filter memory for excitation (whole frame)
      • dtx_count

        private int dtx_count
        State of the VBR data
      • innov2

        private float[] innov2
        Number of consecutive DTX frames
      • complexity

        protected int complexity
      • vbr_enabled

        protected int vbr_enabled
        Complexity setting (0-10 from least complex to most complex)
      • vad_enabled

        protected int vad_enabled
        1 for enabling VBR, 0 otherwise
      • abr_enabled

        protected int abr_enabled
        1 for enabling VAD, 0 otherwise
      • vbr_quality

        protected float vbr_quality
        ABR setting (in bps), 0 if off
      • relative_quality

        protected float relative_quality
        Quality setting for VBR encoding
      • abr_drift

        protected float abr_drift
        Relative quality that will be needed by VBR
      • abr_drift2

        protected float abr_drift2
      • abr_count

        protected float abr_count
      • sampling_rate

        protected int sampling_rate
      • submodeSelect

        protected int submodeSelect
    • Constructor Detail

      • NbEncoder

        public NbEncoder()
    • Method Detail

      • init

        public void init​(int frameSize,
                         int subframeSize,
                         int lpcSize,
                         int bufSize)
        Initialisation
        Overrides:
        init in class NbCodec
        Parameters:
        frameSize -
        subframeSize -
        lpcSize -
        bufSize -
      • encode

        public int encode​(Bits bits,
                          float[] in)
        Encode the given input signal.
        Specified by:
        encode in interface Encoder
        Parameters:
        bits - - Speex bits buffer.
        in - - the raw mono audio frame to encode.
        Returns:
        return 1 if successful.
      • getEncodedFrameSize

        public int getEncodedFrameSize()
        Returns the size in bits of an audio frame encoded with the current mode.
        Specified by:
        getEncodedFrameSize in interface Encoder
        Returns:
        the size in bits of an audio frame encoded with the current mode.
      • setQuality

        public void setQuality​(int quality)
        Sets the Quality
        Specified by:
        setQuality in interface Encoder
        Parameters:
        quality -
      • getBitRate

        public int getBitRate()
        Gets the bitrate.
        Specified by:
        getBitRate in interface Encoder
        Returns:
        the bitrate.
      • setMode

        public void setMode​(int mode)
        Sets the encoding submode.
        Specified by:
        setMode in interface Encoder
        Parameters:
        mode -
      • getMode

        public int getMode()
        Returns the encoding submode currently in use.
        Specified by:
        getMode in interface Encoder
        Returns:
        the encoding submode currently in use.
      • setBitRate

        public void setBitRate​(int bitrate)
        Sets the bitrate.
        Specified by:
        setBitRate in interface Encoder
        Parameters:
        bitrate -
      • setVbr

        public void setVbr​(boolean vbr)
        Sets whether or not to use Variable Bit Rate encoding.
        Specified by:
        setVbr in interface Encoder
        Parameters:
        vbr -
      • getVbr

        public boolean getVbr()
        Returns whether or not we are using Variable Bit Rate encoding.
        Specified by:
        getVbr in interface Encoder
        Returns:
        whether or not we are using Variable Bit Rate encoding.
      • setVad

        public void setVad​(boolean vad)
        Sets whether or not to use Voice Activity Detection encoding.
        Specified by:
        setVad in interface Encoder
        Parameters:
        vad -
      • getVad

        public boolean getVad()
        Returns whether or not we are using Voice Activity Detection encoding.
        Specified by:
        getVad in interface Encoder
        Returns:
        whether or not we are using Voice Activity Detection encoding.
      • setDtx

        public void setDtx​(boolean dtx)
        Sets whether or not to use Discontinuous Transmission encoding.
        Specified by:
        setDtx in interface Encoder
        Parameters:
        dtx -
      • getAbr

        public int getAbr()
        Returns the Average Bit Rate used (0 if ABR is not turned on).
        Specified by:
        getAbr in interface Encoder
        Returns:
        the Average Bit Rate used (0 if ABR is not turned on).
      • setAbr

        public void setAbr​(int abr)
        Sets the Average Bit Rate.
        Specified by:
        setAbr in interface Encoder
        Parameters:
        abr -
      • setVbrQuality

        public void setVbrQuality​(float quality)
        Sets the Varible Bit Rate Quality.
        Specified by:
        setVbrQuality in interface Encoder
        Parameters:
        quality -
      • getVbrQuality

        public float getVbrQuality()
        Returns the Varible Bit Rate Quality.
        Specified by:
        getVbrQuality in interface Encoder
        Returns:
        the Varible Bit Rate Quality.
      • setComplexity

        public void setComplexity​(int complexity)
        Sets the algorthmic complexity.
        Specified by:
        setComplexity in interface Encoder
        Parameters:
        complexity -
      • getComplexity

        public int getComplexity()
        Returns the algorthmic complexity.
        Specified by:
        getComplexity in interface Encoder
        Returns:
        the algorthmic complexity.
      • setSamplingRate

        public void setSamplingRate​(int rate)
        Sets the sampling rate.
        Specified by:
        setSamplingRate in interface Encoder
        Parameters:
        rate -
      • getSamplingRate

        public int getSamplingRate()
        Returns the sampling rate.
        Specified by:
        getSamplingRate in interface Encoder
        Returns:
        the sampling rate.
      • getLookAhead

        public int getLookAhead()
        Return LookAhead.
        Specified by:
        getLookAhead in interface Encoder
        Returns:
        LookAhead.
      • getRelativeQuality

        public float getRelativeQuality()
        Returns the relative quality.
        Specified by:
        getRelativeQuality in interface Encoder
        Returns:
        the relative quality.