Lines Matching refs:st

136     st = pointer to a structure of type dtx_decState
139 Structure pointed to by st is initialized to a set of initial values.
169 int dtx_dec_reset (dtx_decState *st)
173 if (st == (dtx_decState *) NULL){
178 st->since_last_sid = 0;
179 st->true_sid_period_inv = (1 << 13);
181 st->log_en = 3500;
182 st->old_log_en = 3500;
185 st->L_pn_seed_rx = PN_INITIAL_SEED;
188 Copy(lsp_init_data, &st->lsp[0], M);
189 Copy(lsp_init_data, &st->lsp_old[0], M);
191 st->lsf_hist_ptr = 0;
192 st->log_pg_mean = 0;
193 st->log_en_hist_ptr = 0;
196 Copy(mean_lsf, &st->lsf_hist[0], M);
200 Copy(&st->lsf_hist[0], &st->lsf_hist[M*i], M);
202 Set_zero(st->lsf_hist_mean, M*DTX_HIST_SIZE);
207 st->log_en_hist[i] = st->log_en;
210 st->log_en_adjust = 0;
212 st->dtxHangoverCount = DTX_HANG_CONST;
213 st->decAnaElapsedCount = 32767;
215 st->sid_frame = 0;
216 st->valid_data = 0;
217 st->dtxHangoverAdded = 0;
219 st->dtxGlobalState = DTX;
220 st->data_updated = 0;
247 Word16 dtx_dec_reset(dtx_decState *st)
251 if (st == (dtx_decState *) NULL)
257 st->since_last_sid = 0;
258 st->true_sid_period_inv = (1 << 13);
260 st->log_en = 3500;
261 st->old_log_en = 3500;
264 st->L_pn_seed_rx = PN_INITIAL_SEED;
267 st->lsp[0] = 30000;
268 st->lsp[1] = 26000;
269 st->lsp[2] = 21000;
270 st->lsp[3] = 15000;
271 st->lsp[4] = 8000;
272 st->lsp[5] = 0;
273 st->lsp[6] = -8000;
274 st->lsp[7] = -15000;
275 st->lsp[8] = -21000;
276 st->lsp[9] = -26000;
279 st->lsp_old[0] = 30000;
280 st->lsp_old[1] = 26000;
281 st->lsp_old[2] = 21000;
282 st->lsp_old[3] = 15000;
283 st->lsp_old[4] = 8000;
284 st->lsp_old[5] = 0;
285 st->lsp_old[6] = -8000;
286 st->lsp_old[7] = -15000;
287 st->lsp_old[8] = -21000;
288 st->lsp_old[9] = -26000;
290 st->lsf_hist_ptr = 0;
291 st->log_pg_mean = 0;
292 st->log_en_hist_ptr = 0;
295 st->lsf_hist[0] = 1384;
296 st->lsf_hist[1] = 2077;
297 st->lsf_hist[2] = 3420;
298 st->lsf_hist[3] = 5108;
299 st->lsf_hist[4] = 6742;
300 st->lsf_hist[5] = 8122;
301 st->lsf_hist[6] = 9863;
302 st->lsf_hist[7] = 11092;
303 st->lsf_hist[8] = 12714;
304 st->lsf_hist[9] = 13701;
308 Copy(&st->lsf_hist[0], &st->lsf_hist[M*i], M);
310 memset(st->lsf_hist_mean, 0, sizeof(Word16)*M*DTX_HIST_SIZE);
315 st->log_en_hist[i] = st->log_en;
318 st->log_en_adjust = 0;
320 st->dtxHangoverCount = DTX_HANG_CONST;
321 st->decAnaElapsedCount = 32767;
323 st->sid_frame = 0;
324 st->valid_data = 0;
325 st->dtxHangoverAdded = 0;
327 st->dtxGlobalState = DTX;
328 st->data_updated = 0;
342 st = pointer to a structure of type dtx_decState
352 st points to an updated structure of type dtx_decState
388 dtx_decState *st, // i/o : State struct
433 // st->sid_frame
434 // st->valid_data
435 // st->dtxHangoverAdded
438 if ((st->dtxHangoverAdded != 0) &&
439 (st->sid_frame != 0))
445 st->log_en_adjust = dtx_log_en_adjust[mode];
447 ptr = add(st->lsf_hist_ptr, M);
452 Copy( &st->lsf_hist[st->lsf_hist_ptr],&st->lsf_hist[ptr],M);
454 ptr = add(st->log_en_hist_ptr,1);
459 st->log_en_hist[ptr] = st->log_en_hist[st->log_en_hist_ptr]; // Q11
463 st->log_en = 0;
472 st->log_en = add(st->log_en,
473 shr(st->log_en_hist[i],3));
477 L_deposit_l(st->lsf_hist[i * M + j]));
486 Lsf_lsp(lsf, st->lsp, M);
490 st->log_en = sub(st->log_en, st->log_en_adjust);
493 Copy(st->lsf_hist, st->lsf_hist_mean, 80);
502 L_deposit_l(st->lsf_hist_mean[i+j*M]));
511 st->lsf_hist_mean[i+j*M] =
512 sub(st->lsf_hist_mean[i+j*M], lsf_mean);
515 st->lsf_hist_mean[i+j*M] =
516 mult(st->lsf_hist_mean[i+j*M], lsf_hist_mean_scale[i]);
519 if (st->lsf_hist_mean[i+j*M] < 0)
527 st->lsf_hist_mean[i+j*M] = abs_s(st->lsf_hist_mean[i+j*M]);
530 if (sub(st->lsf_hist_mean[i+j*M], 655) > 0)
532 st->lsf_hist_mean[i+j*M] =
533 add(655, shr(sub(st->lsf_hist_mean[i+j*M], 655), 2));
537 if (sub(st->lsf_hist_mean[i+j*M], 1310) > 0)
539 st->lsf_hist_mean[i+j*M] = 1310;
543 st->lsf_hist_mean[i+j*M] = -st->lsf_hist_mean[i+j*M];
550 if (st->sid_frame != 0 )
554 Copy(st->lsp, st->lsp_old, M);
555 st->old_log_en = st->log_en;
557 if (st->valid_data != 0 ) // new data available (no CRC)
562 tmp_int_length = st->since_last_sid;
563 st->since_last_sid = 0;
571 st->true_sid_period_inv = div_s(1 << 10, shl(tmp_int_length, 10));
575 st->true_sid_period_inv = 1 << 14; // 0.5 it Q15
579 D_plsf_3(lsfState, MRDTX, 0, &parm[1], st->lsp);
584 st->log_en = shl(log_en_index, (11 - 2));
587 st->log_en = sub(st->log_en, (2560 * 2));
592 st->log_en = MIN_16;
597 if ((st->data_updated == 0) ||
598 (sub(st->dtxGlobalState, SPEECH) == 0)
601 Copy(st->lsp, st->lsp_old, M);
602 st->old_log_en = st->log_en;
607 ma_pred_init = sub(shr(st->log_en,1), 9000);
633 // st->log_en_adjust = 0.9*st->log_en_adjust +
635 st->log_en_adjust = add(mult(st->log_en_adjust, 29491),
639 int_fac = shl(add(1,st->since_last_sid), 10); // Q10
640 int_fac = mult(int_fac, st->true_sid_period_inv); // Q10 * Q15 -> Q10
649 L_log_en_int = L_mult(int_fac, st->log_en); // Q14 * Q11->Q26
652 lsp_int[i] = mult(int_fac, st->lsp[i]);// Q14 * Q15 -> Q14
658 L_log_en_int = L_mac(L_log_en_int, int_fac, st->old_log_en);
662 lsp_int[i] = add(lsp_int[i], mult(int_fac, st->lsp_old[i]));
667 lsf_variab_factor = sub(st->log_pg_mean,2457); // -0.6 in Q12
683 lsf_variab_index = pseudonoise(&st->L_pn_seed_rx, 3);
694 st->lsf_hist_mean[i+lsf_variab_index*M]));
739 st->log_pg_mean = add(mult(29491,st->log_pg_mean),
753 L_shl(L_deposit_l(st->log_en_adjust), 5));
763 build_CN_code(&st->L_pn_seed_rx, ex);
783 tmp_int_length = st->since_last_sid;
794 st->true_sid_period_inv = div_s(1 << 10, shl(tmp_int_length, 10));
796 st->since_last_sid = 0;
797 Copy(st->lsp, st->lsp_old, M);
798 st->old_log_en = st->log_en;
800 st->log_en = sub(st->log_en, 256);
805 if ((st->sid_frame != 0) &&
806 ((st->valid_data != 0) ||
807 ((st->valid_data == 0) && (st->dtxHangoverAdded) != 0)))
809 st->since_last_sid = 0;
810 st->data_updated = 1;
841 dtx_decState *st, /* i/o : State struct */
891 * st->sid_frame
892 * st->valid_data
893 * st->dtxHangoverAdded
897 if ((st->dtxHangoverAdded != 0) &&
898 (st->sid_frame != 0))
904 st->log_en_adjust = dtx_log_en_adjust[mode];
906 ptr = st->lsf_hist_ptr + M;
912 Copy(&st->lsf_hist[st->lsf_hist_ptr], &st->lsf_hist[ptr], M);
914 ptr = st->log_en_hist_ptr + 1;
921 st->log_en_hist[ptr] = st->log_en_hist[st->log_en_hist_ptr]; /* Q11 */
925 st->log_en = 0;
934 if (st->log_en_hist[i] < 0)
936 temp = ~((~st->log_en_hist[i]) >> 3);
940 temp = st->log_en_hist[i] >> 3;
942 st->log_en = add(st->log_en, temp, pOverflow);
946 L_deposit_l(st->lsf_hist[i * M + j]), pOverflow);
962 Lsf_lsp(lsf, st->lsp, M, pOverflow);
966 st->log_en = sub(st->log_en, st->log_en_adjust, pOverflow);
969 Copy(st->lsf_hist, st->lsf_hist_mean, 80);
978 L_deposit_l(st->lsf_hist_mean[i+j*M]), pOverflow);
994 st->lsf_hist_mean[i+j*M] =
995 sub(st->lsf_hist_mean[i+j*M], lsf_mean, pOverflow);
998 st->lsf_hist_mean[i+j*M] =
999 mult(st->lsf_hist_mean[i+j*M], lsf_hist_mean_scale[i], pOverflow);
1002 if (st->lsf_hist_mean[i+j*M] < 0)
1010 st->lsf_hist_mean[i+j*M] = abs_s(st->lsf_hist_mean[i+j*M]);
1013 if (st->lsf_hist_mean[i+j*M] > 655)
1015 st->lsf_hist_mean[i+j*M] = 655 + ((st->lsf_hist_mean[i+j*M]
1020 if (st->lsf_hist_mean[i+j*M] > 1310)
1022 st->lsf_hist_mean[i+j*M] = 1310;
1027 st->lsf_hist_mean[i+j*M] = -st->lsf_hist_mean[i+j*M];
1034 if (st->sid_frame != 0)
1038 Copy(st->lsp, st->lsp_old, M);
1039 st->old_log_en = st->log_en;
1041 if (st->valid_data != 0) /* new data available (no CRC) */
1046 tmp_int_length = st->since_last_sid;
1047 st->since_last_sid = 0;
1064 st->true_sid_period_inv = div_s(1 << 10, temp);
1068 st->true_sid_period_inv = 1 << 14; /* 0.5 it Q15 */
1072 D_plsf_3(lsfState, MRDTX, 0, &parm[1], st->lsp, pOverflow);
1079 st->log_en = (log_en_index > 0) ? MAX_16 : MIN_16;
1083 st->log_en = (log_en_index) << (11 - 2);
1087 st->log_en = sub(st->log_en, (2560 * 2), pOverflow);
1092 st->log_en = MIN_16;
1098 if ((st->data_updated == 0) ||
1099 (st->dtxGlobalState == SPEECH))
1101 Copy(st->lsp, st->lsp_old, M);
1102 st->old_log_en = st->log_en;
1107 if (st->log_en < 0)
1109 temp = ~((~st->log_en) >> 1);
1113 temp = st->log_en >> 1;
1142 * st->log_en_adjust = 0.9*st->log_en_adjust + *
1165 st->log_en_adjust = add(mult(st->log_en_adjust, 29491, pOverflow), temp, pOverflow);
1168 int_fac = shl(add(1, st->since_last_sid, pOverflow), 10, pOverflow); /* Q10 */
1169 int_fac = mult(int_fac, st->true_sid_period_inv, pOverflow); /* Q10 * Q15 -> Q10 */
1185 L_log_en_int = L_mult(int_fac, st->log_en, pOverflow); /* Q14 * Q11->Q26 */
1188 lsp_int[i] = mult(int_fac, st->lsp[i], pOverflow);/* Q14 * Q15 -> Q14 */
1194 L_log_en_int = L_mac(L_log_en_int, int_fac, st->old_log_en, pOverflow);
1198 lsp_int[i] = add(lsp_int[i], mult(int_fac, st->lsp_old[i], pOverflow), pOverflow);
1210 lsf_variab_factor = sub(st->log_pg_mean, 2457, pOverflow); /* -0.6 in Q12 */
1229 lsf_variab_index = pseudonoise(&st->L_pn_seed_rx, 3);
1240 st->lsf_hist_mean[i+lsf_variab_index*M], pOverflow)
1297 st->log_pg_mean = add(mult(29491, st->log_pg_mean, pOverflow),
1311 L_shl(L_deposit_l(st->log_en_adjust), 5, pOverflow), pOverflow);
1322 build_CN_code(&st->L_pn_seed_rx, ex, pOverflow);
1342 tmp_int_length = st->since_last_sid;
1362 st->true_sid_period_inv = div_s(1 << 10, temp);
1364 st->since_last_sid = 0;
1365 Copy(st->lsp, st->lsp_old, M);
1366 st->old_log_en = st->log_en;
1368 st->log_en = sub(st->log_en, 256, pOverflow);
1373 if ((st->sid_frame != 0) &&
1374 ((st->valid_data != 0) ||
1375 ((st->valid_data == 0) && (st->dtxHangoverAdded) != 0)))
1377 st->since_last_sid = 0;
1378 st->data_updated = 1;
1394 st = pointer to a structure of type dtx_decState
1399 st points to an updated structure of type dtx_decState
1428 void dtx_dec_activity_update(dtx_decState *st,
1438 st->lsf_hist_ptr = add(st->lsf_hist_ptr,M);
1439 if (sub(st->lsf_hist_ptr, 80) == 0)
1441 st->lsf_hist_ptr = 0;
1443 Copy(lsf, &st->lsf_hist[st->lsf_hist_ptr], M);
1462 st->log_en_hist_ptr = add(st->log_en_hist_ptr, 1);
1463 if (sub(st->log_en_hist_ptr, DTX_HIST_SIZE) == 0)
1465 st->log_en_hist_ptr = 0;
1467 st->log_en_hist[st->log_en_hist_ptr] = log_en; // Q11
1493 void dtx_dec_activity_update(dtx_decState *st,
1507 st->lsf_hist_ptr += M;
1509 if (st->lsf_hist_ptr == 80)
1511 st->lsf_hist_ptr = 0;
1513 Copy(lsf, &st->lsf_hist[st->lsf_hist_ptr], M);
1557 st->log_en_hist_ptr += 1;
1559 if (st->log_en_hist_ptr == DTX_HIST_SIZE)
1561 st->log_en_hist_ptr = 0;
1563 st->log_en_hist[st->log_en_hist_ptr] = log_en; /* Q11 */
1577 st = pointer to a structure of type dtx_decState
1584 st points to an updated structure of type dtx_decState
1637 dtx_decState *st, // i/o : State struct
1648 (((sub(st->dtxGlobalState, DTX) == 0) ||
1649 (sub(st->dtxGlobalState, DTX_MUTE) == 0)) &&
1657 if ((sub(st->dtxGlobalState, DTX_MUTE) == 0) &&
1668 st->since_last_sid = add(st->since_last_sid, 1);
1671 // Due to the delayed update of st->since_last_sid counter
1675 (sub(st->since_last_sid, DTX_MAX_EMPTY_THRESH) > 0))
1683 st->since_last_sid = 0;
1690 if ((st->data_updated == 0) &&
1693 st->decAnaElapsedCount = 0;
1698 st->decAnaElapsedCount = add(st->decAnaElapsedCount, 1);
1699 st->dtxHangoverAdded = 0;
1731 st->dtxHangoverCount = DTX_HANG_CONST;
1735 if (sub(st->decAnaElapsedCount, DTX_ELAPSED_FRAMES_THRESH) > 0)
1737 st->dtxHangoverAdded = 1;
1738 st->decAnaElapsedCount = 0;
1739 st->dtxHangoverCount = 0;
1741 else if (st->dtxHangoverCount == 0)
1743 st->decAnaElapsedCount = 0;
1747 st->dtxHangoverCount = sub(st->dtxHangoverCount, 1);
1758 st->sid_frame = 0;
1759 st->valid_data = 0;
1763 st->sid_frame = 1;
1767 st->sid_frame = 1;
1768 st->valid_data = 1;
1772 st->sid_frame = 1;
1773 st->dtxHangoverAdded = 0; // use old data
1805 dtx_decState *st, /* i/o : State struct */
1818 (((st->dtxGlobalState == DTX) || (st->dtxGlobalState == DTX_MUTE)) &&
1826 if ((st->dtxGlobalState == DTX_MUTE) &&
1837 st->since_last_sid = add(st->since_last_sid, 1, pOverflow);
1840 /* Due to the delayed update of st->since_last_sid counter */
1844 (st->since_last_sid > DTX_MAX_EMPTY_THRESH))
1852 st->since_last_sid = 0;
1861 if ((st->data_updated == 0) &&
1864 st->decAnaElapsedCount = 0;
1869 st->decAnaElapsedCount = add(st->decAnaElapsedCount, 1, pOverflow);
1870 st->dtxHangoverAdded = 0;
1906 st->dtxHangoverCount = DTX_HANG_CONST;
1911 if (st->decAnaElapsedCount > DTX_ELAPSED_FRAMES_THRESH)
1913 st->dtxHangoverAdded = 1;
1914 st->decAnaElapsedCount = 0;
1915 st->dtxHangoverCount = 0;
1917 else if (st->dtxHangoverCount == 0)
1919 st->decAnaElapsedCount = 0;
1923 st->dtxHangoverCount -= 1;
1935 st->sid_frame = 0;
1936 st->valid_data = 0;
1940 st->sid_frame = 1;
1944 st->sid_frame = 1;
1945 st->valid_data = 1;
1949 st->sid_frame = 1;
1950 st->dtxHangoverAdded = 0; /* use old data */