1*4882a593Smuzhiyun# Rockchip AEC_ANR_AGC算法 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun## compile 4*4882a593Smuzhiyun 5*4882a593Smuzhiyunmkdir -p build 6*4882a593Smuzhiyuncd build 7*4882a593Smuzhiyuncmake .. -DCMAKE_TOOLCHAIN_FILE=~/video/rv1109/buildroot/output/rockchip_puma_toolchain/host/share/buildroot/toolchainfile.cmake 8*4882a593Smuzhiyunmake 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun优化选项: -O3 -mfpu=neon -mfloat-abi=hard 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun## 资源占用情况 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun### 测试环境 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun* RV1808 EVB 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun* cpu: 关闭ARM核保留一个核,定频 1Ghz 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun echo 1008000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun echo 0 > /sys/devices/system/cpu/cpu1/online 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun* ddr : LPDDR3 933MHz 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun### Test 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun* 内存占用情况:RSS 1.6M 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun* 计算耗时 cpu 37% 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun * ./test_aec_anr_agc csq_0_1mic.wav csq_0_1mic-out.wav 35*4882a593Smuzhiyun filename=csq_0_1mic.wav format=1 num_channels=2 sample_rate=16000 sample_bits=16 num_samples=128001 36*4882a593Smuzhiyun mic_channel = 1, ref channel = 1 37*4882a593Smuzhiyun init ch 0 38*4882a593Smuzhiyun init ch 0 succeed 39*4882a593Smuzhiyun init ok 40*4882a593Smuzhiyun alloc ok 41*4882a593Smuzhiyun elapse 6 ms //PROCESS TX 16ms数据 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun elapse 0 ms //PROCESS RX 44*4882a593Smuzhiyun elapse 6 ms 45*4882a593Smuzhiyun elapse 0 ms 46*4882a593Smuzhiyun elapse 6 ms 47*4882a593Smuzhiyun elapse 0 ms 48*4882a593Smuzhiyun elapse 6 ms 49*4882a593Smuzhiyun elapse 0 ms 50*4882a593Smuzhiyun elapse 6 ms 51*4882a593Smuzhiyun elapse 0 ms 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun* 稳定性测试 54*4882a593Smuzhiyun * 多实例循环压力测试通过:没有内存泄露,可以稳定长时运行 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun # cat /proc/673/status 58*4882a593Smuzhiyun Name: test_aec_anr_ag 59*4882a593Smuzhiyun State: R (running) 60*4882a593Smuzhiyun Tgid: 673 61*4882a593Smuzhiyun Ngid: 0 62*4882a593Smuzhiyun Pid: 673 63*4882a593Smuzhiyun PPid: 609 64*4882a593Smuzhiyun TracerPid: 0 65*4882a593Smuzhiyun Uid: 0 0 0 0 66*4882a593Smuzhiyun Gid: 0 0 0 0 67*4882a593Smuzhiyun FDSize: 64 68*4882a593Smuzhiyun Groups: 69*4882a593Smuzhiyun VmPeak: 2444 kB 70*4882a593Smuzhiyun VmSize: 2444 kB 71*4882a593Smuzhiyun VmLck: 0 kB 72*4882a593Smuzhiyun VmPin: 0 kB 73*4882a593Smuzhiyun VmHWM: 1672 kB 74*4882a593Smuzhiyun VmRSS: 1672 kB 75*4882a593Smuzhiyun VmData: 292 kB 76*4882a593Smuzhiyun VmStk: 132 kB 77*4882a593Smuzhiyun VmExe: 8 kB 78*4882a593Smuzhiyun VmLib: 1784 kB 79*4882a593Smuzhiyun VmPTE: 20 kB 80*4882a593Smuzhiyun VmPMD: 8 kB 81*4882a593Smuzhiyun VmSwap: 0 kB 82*4882a593Smuzhiyun Threads: 1 83*4882a593Smuzhiyun SigQ: 0/7992 84*4882a593Smuzhiyun SigPnd: 0000000000000000 85*4882a593Smuzhiyun ShdPnd: 0000000000000000 86*4882a593Smuzhiyun SigBlk: 0000000000000000 87*4882a593Smuzhiyun SigIgn: 0000000000000000 88*4882a593Smuzhiyun SigCgt: 0000000000000000 89*4882a593Smuzhiyun CapInh: 0000000000000000 90*4882a593Smuzhiyun CapPrm: 0000003fffffffff 91*4882a593Smuzhiyun CapEff: 0000003fffffffff 92*4882a593Smuzhiyun CapBnd: 0000003fffffffff 93*4882a593Smuzhiyun CapAmb: 0000000000000000 94*4882a593Smuzhiyun Speculation_Store_Bypass: unknown 95*4882a593Smuzhiyun Cpus_allowed: 3 96*4882a593Smuzhiyun Cpus_allowed_list: 0-1 97*4882a593Smuzhiyun Mems_allowed: 1 98*4882a593Smuzhiyun Mems_allowed_list: 0 99*4882a593Smuzhiyun voluntary_ctxt_switches: 1 100*4882a593Smuzhiyun nonvoluntary_ctxt_switches: 38 101