aecm_defines.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /*
  2. * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
  3. *
  4. * Use of this source code is governed by a BSD-style license
  5. * that can be found in the LICENSE file in the root of the source
  6. * tree. An additional intellectual property rights grant can be found
  7. * in the file PATENTS. All contributing project authors may
  8. * be found in the AUTHORS file in the root of the source tree.
  9. */
  10. #ifndef MODULES_AUDIO_PROCESSING_AECM_AECM_DEFINES_H_
  11. #define MODULES_AUDIO_PROCESSING_AECM_AECM_DEFINES_H_
  12. #define AECM_DYNAMIC_Q /* Turn on/off dynamic Q-domain. */
  13. /* Algorithm parameters */
  14. #define FRAME_LEN 80 /* Total frame length, 10 ms. */
  15. #define PART_LEN 64 /* Length of partition. */
  16. #define PART_LEN_SHIFT 7 /* Length of (PART_LEN * 2) in base 2. */
  17. #define PART_LEN1 (PART_LEN + 1) /* Unique fft coefficients. */
  18. #define PART_LEN2 (PART_LEN << 1) /* Length of partition * 2. */
  19. #define PART_LEN4 (PART_LEN << 2) /* Length of partition * 4. */
  20. #define FAR_BUF_LEN PART_LEN4 /* Length of buffers. */
  21. #define MAX_DELAY 100
  22. /* Counter parameters */
  23. #define CONV_LEN 512 /* Convergence length used at startup. */
  24. #define CONV_LEN2 (CONV_LEN << 1) /* Used at startup. */
  25. /* Energy parameters */
  26. #define MAX_BUF_LEN 64 /* History length of energy signals. */
  27. #define FAR_ENERGY_MIN 1025 /* Lowest Far energy level: At least 2 */
  28. /* in energy. */
  29. #define FAR_ENERGY_DIFF 929 /* Allowed difference between max */
  30. /* and min. */
  31. #define ENERGY_DEV_OFFSET 0 /* The energy error offset in Q8. */
  32. #define ENERGY_DEV_TOL 400 /* The energy estimation tolerance (Q8). */
  33. #define FAR_ENERGY_VAD_REGION 230 /* Far VAD tolerance region. */
  34. /* Stepsize parameters */
  35. #define MU_MIN 10 /* Min stepsize 2^-MU_MIN (far end energy */
  36. /* dependent). */
  37. #define MU_MAX 1 /* Max stepsize 2^-MU_MAX (far end energy */
  38. /* dependent). */
  39. #define MU_DIFF 9 /* MU_MIN - MU_MAX */
  40. /* Channel parameters */
  41. #define MIN_MSE_COUNT 20 /* Min number of consecutive blocks with enough */
  42. /* far end energy to compare channel estimates. */
  43. #define MIN_MSE_DIFF 29 /* The ratio between adapted and stored channel to */
  44. /* accept a new storage (0.8 in Q-MSE_RESOLUTION). */
  45. #define MSE_RESOLUTION 5 /* MSE parameter resolution. */
  46. #define RESOLUTION_CHANNEL16 12 /* W16 Channel in Q-RESOLUTION_CHANNEL16. */
  47. #define RESOLUTION_CHANNEL32 28 /* W32 Channel in Q-RESOLUTION_CHANNEL. */
  48. #define CHANNEL_VAD 16 /* Minimum energy in frequency band */
  49. /* to update channel. */
  50. /* Suppression gain parameters: SUPGAIN parameters in Q-(RESOLUTION_SUPGAIN). */
  51. #define RESOLUTION_SUPGAIN 8 /* Channel in Q-(RESOLUTION_SUPGAIN). */
  52. #define SUPGAIN_DEFAULT (1 << RESOLUTION_SUPGAIN) /* Default. */
  53. #define SUPGAIN_ERROR_PARAM_A 3072 /* Estimation error parameter */
  54. /* (Maximum gain) (8 in Q8). */
  55. #define SUPGAIN_ERROR_PARAM_B 1536 /* Estimation error parameter */
  56. /* (Gain before going down). */
  57. #define SUPGAIN_ERROR_PARAM_D SUPGAIN_DEFAULT /* Estimation error parameter */
  58. /* (Should be the same as Default) (1 in Q8). */
  59. #define SUPGAIN_EPC_DT 200 /* SUPGAIN_ERROR_PARAM_C * ENERGY_DEV_TOL */
  60. /* Defines for "check delay estimation" */
  61. #define CORR_WIDTH 31 /* Number of samples to correlate over. */
  62. #define CORR_MAX 16 /* Maximum correlation offset. */
  63. #define CORR_MAX_BUF 63
  64. #define CORR_DEV 4
  65. #define CORR_MAX_LEVEL 20
  66. #define CORR_MAX_LOW 4
  67. #define CORR_BUF_LEN (CORR_MAX << 1) + 1
  68. /* Note that CORR_WIDTH + 2*CORR_MAX <= MAX_BUF_LEN. */
  69. #define ONE_Q14 (1 << 14)
  70. /* NLP defines */
  71. #define NLP_COMP_LOW 3277 /* 0.2 in Q14 */
  72. #define NLP_COMP_HIGH ONE_Q14 /* 1 in Q14 */
  73. #endif