Jitsi: the OpenSource Java VoIP and Instant Messaging client.

net.java.sip.communicator.impl.neomedia.codec.audio.g729
Class Postfil

java.lang.Object
  extended by net.java.sip.communicator.impl.neomedia.codec.audio.g729.Ld8k
      extended by net.java.sip.communicator.impl.neomedia.codec.audio.g729.Postfil

 class Postfil
extends Ld8k

Post - filtering : short term + long term. Floating point computation.

      Short term postfilter :
      Hst(z) = Hst0(z) Hst1(z)
      Hst0(z) = 1/g0 A(gamma2)(z) / A(gamma1)(z)
      if {hi} = i.r. filter A(gamma2)/A(gamma1) (truncated)
      g0 = SUM(|hi|) if > 1
      g0 = 1. else
      Hst1(z) = 1/(1+ |mu|) (1 + mu z-1)
      with mu = 1st parcor calculated on {hi}

      Long term postfilter :
      harmonic postfilter :   H0(z) = gl * (1 + b * z-p)
      b = gamma_g * gain_ltp
      gl = 1 / 1 + b
      copmuation of delay on A(gamma2)(z) s(z)
      sub optimal research
      1. search best integer delay
      2. search around integer sub multiples (3 val. / sub mult)
      3. search around integer with fractionnal delays (1/8)
 

Author:
Lubomir Marinov (translation of ITU-T C source code to Java)

Field Summary
 
Fields inherited from class net.java.sip.communicator.impl.neomedia.codec.audio.g729.Ld8k
AGC_FAC, AGC_FAC1, ALPHA, BETA, BIT_0, BIT_1, CONST12, DIM_RR, F_UP_PST, FIR_SIZE_ANA, FIR_SIZE_SYN, FLT_MAX_G729, FLT_MIN_G729, GAIN_PIT_MAX, GAMMA_G, GAMMA1_0, GAMMA1_1, GAMMA1_PST, GAMMA2_0_H, GAMMA2_0_L, GAMMA2_1, GAMMA2_PST, GAMMA3_MINUS, GAMMA3_PLUS, GAP1, GAP2, GAP3, GP0999, GPCLIP, GPCLIP2, GRID_POINTS, INV_COEF, INV_L_SUBFR, L_FRAME, L_INTER10, L_INTER4, L_INTERPOL, L_LIMIT, L_NEXT, L_SUBFR, L_SUBFRP1, L_TOTAL, L_WINDOW, LH_UP_L, LH_UP_S, LH2_L, LH2_L_P1, LH2_S, LONG_H_ST, M, M_LIMIT, MA_NP, MAX_TIME, MEAN_ENER, MEM_RES2, MIN_GPLT, MODE, MP1, MSIZE, NB_POS, NC, NC0, NC0_B, NC1, NC1_B, NCAN1, NCAN2, NCODE1, NCODE1_B, NCODE2, NCODE2_B, PI, PI04, PI92, PIT_MAX, PIT_MIN, PRM_SIZE, SERIAL_SIZE, SHARPMAX, SHARPMIN, SIZ_RES2, SIZ_TAB_HUP_L, SIZ_TAB_HUP_S, SIZ_Y_UP, SIZE_WORD, STEP, SYNC_WORD, THRESCRIT, THRESH_ERR, THRESH_H1, THRESH_H2, THRESH_L1, THRESH_L2, THRESHFCB, THRESHPIT, UP_SAMP
 
Constructor Summary
Postfil()
           
 
Method Summary
(package private)  void init_post_filter()
          Initialize postfilter functions
(package private)  int post(int t0, float[] signal_ptr, int signal_ptr_offset, float[] coeff, int coeff_offset, float[] sig_out, int sig_out_offset)
          Adaptive postfilter main function
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Postfil

Postfil()
Method Detail

init_post_filter

void init_post_filter()
Initialize postfilter functions


post

int post(int t0,
         float[] signal_ptr,
         int signal_ptr_offset,
         float[] coeff,
         int coeff_offset,
         float[] sig_out,
         int sig_out_offset)
Adaptive postfilter main function

Parameters:
t0 - input : pitch delay given by coder
signal_ptr - input : input signal (pointer to current subframe)
signal_ptr_offset - input : input signal offset
coeff - input : LPC coefficients for current subframe
coeff_offset - input : LPC coefficients offset
sig_out - output: postfiltered output
sig_out_offset - input: postfiltered output offset
Returns:
voicing decision 0 = uv, > 0 delay

Jitsi: the OpenSource Java VoIP and Instant Messaging client.

Jitsi, the OpenSource Java VoIP and Instant Messaging client.
Distributable under LGPL license.