/* g729a_encoder - Decompiled by JODE * Visit http://jode.sourceforge.net/ */ package javaforce.codec.g729a; final class g729a_encoder implements g729a_constants { g729a_preproc_filter preproc; g729a_sinthesis_filter sinthesis; g729a_sinthesis_filter weghted_sinthesis; g729a_sinthesis_filter weghted; g729a_encode_filters filters; g729a_encode_speech speech; g729a_encode_lp lp; float[] past_subframe_3 = new float[40]; float[] past_subframe_2 = new float[40]; float[] past_subframe_1 = new float[40]; float[] present_subframe_1 = new float[40]; float[] present_subframe_2 = new float[40]; float[] future_subframe = new float[40]; float[] weighted_speech = new float[224]; float[] excitation = new float[194]; float[] q_quant_past_subframe_2 = new float[10]; float[] q_quant_present_subframe_2 = new float[10]; float[] l_quant_past_frame_4 = new float[10]; float[] l_quant_past_frame_3 = new float[10]; float[] l_quant_past_frame_2 = new float[10]; float[] l_quant_past_frame_1 = new float[10]; float[] exc_err = new float[4]; void encode(G729aCode g729acode, short[] is) { g729a_encode_internal var_g729a_encode_internal = new g729a_encode_internal(); float[] fs = new float[40]; float[][] fs_0_ = new float[3][40]; float[][] fs_1_ = new float[3][]; g729a_utils.validateData(is, 0); var_g729a_encode_internal.r = fs; fs_1_[0] = fs_0_[0]; fs_1_[1] = fs_0_[1]; fs_1_[2] = fs_0_[2]; g729a_pre_proc.g729a_preproc_filter(speech.present_subframe_2, is, 0, filters); g729a_pre_proc.g729a_preproc_filter(speech.future_subframe, is, 40, filters); g729a_lpc.g729a_lp_analysis(lp.q, speech); g729a_qua_lsp.g729a_qua_lsp_encode(lp, g729acode); g729a_common.g729a_lsp_interpolation(lp.q_quant_present_subframe_1, lp.q_quant_past_subframe_2, lp.q_quant_present_subframe_2); g729a_common.g729a_LSP2LP(var_g729a_encode_internal.a_quant_subframe1, lp.q_quant_present_subframe_1); g729a_common.g729a_LSP2LP(var_g729a_encode_internal.a_quant_subframe2, lp.q_quant_present_subframe_2); float[] fs_2_ = lp.q_quant_past_subframe_2; lp.q_quant_past_subframe_2 = lp.q_quant_present_subframe_2; lp.q_quant_present_subframe_2 = fs_2_; g729a_pwf.g729a_pwf(speech.weighted_speech, 0, speech.excitation, 154, speech.present_subframe_1, var_g729a_encode_internal.a_quant_subframe1, filters); g729a_pwf.g729a_pwf(speech.weighted_speech, 40, var_g729a_encode_internal.r, 0, speech.present_subframe_2, var_g729a_encode_internal.a_quant_subframe2, filters); var_g729a_encode_internal.T_opt = g729a_pitch.g729a_opla(speech.weighted_speech); g729a_pitch.g729a_impulse_response(var_g729a_encode_internal, (var_g729a_encode_internal .a_quant_subframe1)); g729a_pitch.g729a_target(var_g729a_encode_internal, speech, filters); g729a_pitch.g729a_ad_cod_search_1(g729acode, var_g729a_encode_internal, speech, fs_1_); g729a_pitch.g729a_adcb_gain(var_g729a_encode_internal); var_g729a_encode_internal.taming = g729a_pitch.g729a_test_err(exc_err, var_g729a_encode_internal.T1, var_g729a_encode_internal.frac_T1); if (var_g729a_encode_internal.taming == 1 && var_g729a_encode_internal.gp > 0.9499512F) var_g729a_encode_internal.gp = 0.9499512F; g729a_acelp_co.g729a_fc_search(var_g729a_encode_internal, var_g729a_encode_internal.T1, speech.past_quan_gp); g729a_qua_gain.g729a_qua_gain(var_g729a_encode_internal, speech); g729acode.setC1(var_g729a_encode_internal.C); g729acode.setS1(var_g729a_encode_internal.S); g729acode.setGA1(var_g729a_encode_internal.GA); g729acode.setGB1(var_g729a_encode_internal.GB); g729a_qua_gain.g729a_memory_update_1(speech, var_g729a_encode_internal, filters); g729a_pitch.g729a_update_exc_err(exc_err, var_g729a_encode_internal.gp_quan, var_g729a_encode_internal.T1); g729a_pitch.g729a_impulse_response(var_g729a_encode_internal, (var_g729a_encode_internal .a_quant_subframe2)); g729a_pitch.g729a_target(var_g729a_encode_internal, speech, filters); g729a_pitch.g729a_ad_cod_search_2(g729acode, var_g729a_encode_internal, speech, fs_1_); g729a_pitch.g729a_adcb_gain(var_g729a_encode_internal); var_g729a_encode_internal.taming = g729a_pitch.g729a_test_err(exc_err, var_g729a_encode_internal.T2, var_g729a_encode_internal.frac_T2); if (var_g729a_encode_internal.taming == 1 && var_g729a_encode_internal.gp > 0.9499512F) var_g729a_encode_internal.gp = 0.9499512F; g729a_acelp_co.g729a_fc_search(var_g729a_encode_internal, var_g729a_encode_internal.T2, speech.past_quan_gp); g729a_qua_gain.g729a_qua_gain(var_g729a_encode_internal, speech); g729acode.setC2(var_g729a_encode_internal.C); g729acode.setS2(var_g729a_encode_internal.S); g729acode.setGA2(var_g729a_encode_internal.GA); g729acode.setGB2(var_g729a_encode_internal.GB); g729a_qua_gain.g729a_memory_update_2(speech, var_g729a_encode_internal, filters); g729a_pitch.g729a_update_exc_err(exc_err, var_g729a_encode_internal.gp_quan, var_g729a_encode_internal.T2); float[] fs_3_ = speech.past_subframe_3; float[] fs_4_ = speech.past_subframe_2; speech.past_subframe_3 = speech.past_subframe_1; speech.past_subframe_2 = speech.present_subframe_1; speech.past_subframe_1 = speech.present_subframe_2; speech.present_subframe_1 = speech.future_subframe; speech.present_subframe_2 = fs_3_; speech.future_subframe = fs_4_; } public void encode(byte[] is, int i, short[] is_5_, int i_6_, int i_7_) { int i_8_ = i_6_; int i_9_ = i; for (int i_10_ = 0; i_10_ < i_7_; i_10_++) { encode(is, i_9_, is_5_, i_8_); i_8_ += 80; i_9_ += 10; } } public void encode(G729aCode[] g729acodes, short[] is, int i, int i_11_) { if (g729acodes.length < i_11_) throw new G729aException(1); int i_12_ = i; for (int i_13_ = 0; i_13_ < i_11_; i_13_++) { encode(g729acodes[i_13_], is, i_12_); i_12_ += 80; } } public void encode(byte[] is, int i, short[] is_14_, int i_15_) { G729aCode g729acode = new G729aCode(); g729a_utils.validateCode(is, i); g729a_utils.validateData(is_14_, i_15_); encode(g729acode, is_14_, i_15_); byte[] is_16_ = g729acode.getData(); System.arraycopy(is_16_, 0, is, i, 10); } public void encode(G729aCode g729acode, short[] is, int i) { short[] is_17_ = new short[80]; g729a_utils.validateData(is, i); System.arraycopy(is, i, is_17_, 0, 80); encode(g729acode, is_17_); } public g729a_encoder() { preproc = new g729a_preproc_filter(); sinthesis = new g729a_sinthesis_filter(); weghted_sinthesis = new g729a_sinthesis_filter(); weghted = new g729a_sinthesis_filter(); g729a_preproc_filter var_g729a_preproc_filter = preproc; g729a_sinthesis_filter var_g729a_sinthesis_filter = sinthesis; g729a_sinthesis_filter var_g729a_sinthesis_filter_18_ = weghted_sinthesis; g729a_sinthesis_filter var_g729a_sinthesis_filter_19_ = weghted; var_g729a_preproc_filter.a0 = 0.46363717F; var_g729a_preproc_filter.a1 = -0.92724705F; var_g729a_preproc_filter.a2 = 0.46363717F; var_g729a_preproc_filter.b1 = 1.9059465F; var_g729a_preproc_filter.b2 = -0.9114024F; var_g729a_preproc_filter.x1 = 0.0F; var_g729a_preproc_filter.x2 = 0.0F; var_g729a_preproc_filter.y1 = 0.0F; var_g729a_preproc_filter.y2 = 0.0F; speech = new g729a_encode_speech(); speech.past_quan_gp = 0.2000122F; lp = new g729a_encode_lp(); float[] fs = q_quant_past_subframe_2; float[] fs_20_ = lp.q; float f = 0.28559935F; for (int i = 0; i < 10; i++) { fs[i] = (float) Math.cos((double) (f * (float) (i + 1))); fs_20_[i] = fs[i]; } float[] fs_21_ = l_quant_past_frame_4; float[] fs_22_ = l_quant_past_frame_3; float[] fs_23_ = l_quant_past_frame_2; fs_20_ = l_quant_past_frame_1; for (int i = 0; i < 10; i++) fs_21_[i] = fs_22_[i] = fs_23_[i] = fs_20_[i] = (float) (i + 1) * f; for (int i = 0; i < 2; i++) { fs_20_ = lp.fg_l_quant_sum; fs = g729a_tables.g729a_fg_sum; for (int i_24_ = 0; i_24_ < 10; i_24_++) fs_20_[i_24_ + 10 * i] = (1.0F - fs[i_24_ + 10 * i]) * fs_23_[i_24_]; } filters = new g729a_encode_filters(); filters.preproc = var_g729a_preproc_filter; filters.sinthesis = var_g729a_sinthesis_filter; filters.weghted_sinthesis = var_g729a_sinthesis_filter_18_; filters.weghted = var_g729a_sinthesis_filter_19_; speech.past_subframe_3 = past_subframe_3; speech.past_subframe_2 = past_subframe_2; speech.past_subframe_1 = past_subframe_1; speech.present_subframe_1 = present_subframe_1; speech.present_subframe_2 = present_subframe_2; speech.future_subframe = future_subframe; speech.weighted_speech = weighted_speech; speech.excitation = excitation; lp.q_quant_past_subframe_2 = q_quant_past_subframe_2; lp.q_quant_present_subframe_2 = q_quant_present_subframe_2; lp.l_quant_past_frame_4 = l_quant_past_frame_4; lp.l_quant_past_frame_3 = l_quant_past_frame_3; lp.l_quant_past_frame_2 = l_quant_past_frame_2; lp.l_quant_past_frame_1 = l_quant_past_frame_1; exc_err[0] = exc_err[1] = exc_err[2] = exc_err[3] = 1.0F; } void reset() { g729a_preproc_filter var_g729a_preproc_filter = preproc; g729a_sinthesis_filter var_g729a_sinthesis_filter = sinthesis; g729a_sinthesis_filter var_g729a_sinthesis_filter_25_ = weghted_sinthesis; g729a_sinthesis_filter var_g729a_sinthesis_filter_26_ = weghted; var_g729a_preproc_filter.a0 = 0.46363717F; var_g729a_preproc_filter.a1 = -0.92724705F; var_g729a_preproc_filter.a2 = 0.46363717F; var_g729a_preproc_filter.b1 = 1.9059465F; var_g729a_preproc_filter.b2 = -0.9114024F; var_g729a_preproc_filter.x1 = 0.0F; var_g729a_preproc_filter.x2 = 0.0F; var_g729a_preproc_filter.y1 = 0.0F; var_g729a_preproc_filter.y2 = 0.0F; g729a_utils.g729a_set_0(var_g729a_sinthesis_filter.delay, 10); g729a_utils.g729a_set_0(var_g729a_sinthesis_filter_25_.delay, 10); g729a_utils.g729a_set_0(var_g729a_sinthesis_filter_26_.delay, 10); g729a_utils.g729a_set_0(past_subframe_3, 40); g729a_utils.g729a_set_0(past_subframe_2, 40); g729a_utils.g729a_set_0(past_subframe_1, 40); g729a_utils.g729a_set_0(present_subframe_1, 40); g729a_utils.g729a_set_0(weighted_speech, 144); g729a_utils.g729a_set_0(excitation, 154); speech.U[0] = speech.U[1] = speech.U[2] = speech.U[3] = 0; speech.past_quan_gp = 0.2000122F; float[] fs = q_quant_past_subframe_2; float[] fs_27_ = lp.q; float f = 0.28559935F; for (int i = 0; i < 10; i++) { fs[i] = (float) Math.cos((double) (f * (float) (i + 1))); fs_27_[i] = fs[i]; } float[] fs_28_ = l_quant_past_frame_4; float[] fs_29_ = l_quant_past_frame_3; float[] fs_30_ = l_quant_past_frame_2; fs_27_ = l_quant_past_frame_1; for (int i = 0; i < 10; i++) fs_28_[i] = fs_29_[i] = fs_30_[i] = fs_27_[i] = (float) (i + 1) * f; for (int i = 0; i < 2; i++) { fs_27_ = lp.fg_l_quant_sum; fs = g729a_tables.g729a_fg_sum; for (int i_31_ = 0; i_31_ < 10; i_31_++) fs_27_[i_31_ + 10 * i] = (1.0F - fs[i_31_ + 10 * i]) * fs_30_[i_31_]; } filters.preproc = var_g729a_preproc_filter; filters.sinthesis = var_g729a_sinthesis_filter; filters.weghted_sinthesis = var_g729a_sinthesis_filter_25_; filters.weghted = var_g729a_sinthesis_filter_26_; speech.past_subframe_3 = past_subframe_3; speech.past_subframe_2 = past_subframe_2; speech.past_subframe_1 = past_subframe_1; speech.present_subframe_1 = present_subframe_1; speech.present_subframe_2 = present_subframe_2; speech.future_subframe = future_subframe; speech.weighted_speech = weighted_speech; speech.excitation = excitation; q_quant_past_subframe_2 = q_quant_past_subframe_2; q_quant_present_subframe_2 = q_quant_present_subframe_2; l_quant_past_frame_4 = l_quant_past_frame_4; l_quant_past_frame_3 = l_quant_past_frame_3; l_quant_past_frame_2 = l_quant_past_frame_2; l_quant_past_frame_1 = l_quant_past_frame_1; exc_err[0] = exc_err[1] = exc_err[2] = exc_err[3] = 1.0F; } }