1, big performance gain when resampling is using large filter
2, isn't helpful for silk encoder/decoder, I guess it is already good optimized(three year research)
gcc first
[gang@dev105 bin]$ gcc -v
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --disable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=i386-redhat-linux
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-51)
[gang@dev105 bin]$
Running mips_test()...
MIPS test, with CPU=2666Mhz, 8102.0 MIPS
Clock Item Time CPU MIPS
Rate (usec) (%)
----------------------------------------------------------------------
8KHz get from memplayer 6 0.001 0.05
8KHz conference bridge with 1 call 168 0.017 1.36
8KHz conference bridge with 2 calls 348 0.035 2.82
8KHz conference bridge with 4 calls 710 0.071 5.75
8KHz conference bridge with 8 calls 1417 0.142 11.48
8KHz conference bridge with 16 calls 2865 0.287 23.21
8KHz upsample+downsample - linear 144 0.014 1.17
8KHz upsample+downsample - small filter 3551 0.355 28.77
8KHz upsample+downsample - large filter 16757 1.676 135.76
8KHz WSOLA PLC - 0% loss 18 0.002 0.15
8KHz WSOLA PLC - 2% loss 29 0.003 0.23
8KHz WSOLA PLC - 5% loss 51 0.005 0.41
8KHz WSOLA PLC - 10% loss 110 0.011 0.89
8KHz WSOLA PLC - 20% loss 180 0.018 1.46
8KHz WSOLA PLC - 50% loss 416 0.042 3.37
8KHz WSOLA discard 2% excess 9 0.001 0.07
8KHz WSOLA discard 5% excess 17 0.002 0.14
8KHz WSOLA discard 10% excess 45 0.004 0.36
8KHz WSOLA discard 20% excess 81 0.008 0.66
8KHz WSOLA discard 50% excess 237 0.024 1.92
8KHz Delay buffer 26 0.003 0.21
8KHz Delay buffer - drift -2% 37 0.004 0.30
8KHz Delay buffer - drift -5% 53 0.005 0.43
8KHz Delay buffer - drift -10% 66 0.007 0.53
8KHz Delay buffer - drift -20% 132 0.013 1.07
8KHz Delay buffer - drift +2% 30 0.003 0.24
8KHz Delay buffer - drift +5% 47 0.005 0.38
8KHz Delay buffer - drift +10% 58 0.006 0.47
8KHz Delay buffer - drift +20% 109 0.011 0.88
8KHz echo canceller 100ms tail len 7187 0.719 58.23
8KHz echo canceller 128ms tail len 7484 0.748 60.64
8KHz echo canceller 200ms tail len 8010 0.801 64.90
8KHz echo canceller 256ms tail len 8439 0.844 68.37
8KHz echo canceller 400ms tail len 9859 0.986 79.88
8KHz echo canceller 500ms tail len 10469 1.047 84.82
8KHz echo canceller 512ms tail len 10747 1.075 87.07
8KHz echo canceller 600ms tail len 11475 1.148 92.97
8KHz echo canceller 800ms tail len 13001 1.300 105.33
8KHz echo suppressor 100ms tail len 102 0.010 0.83
8KHz echo suppressor 128ms tail len 102 0.010 0.83
8KHz echo suppressor 200ms tail len 112 0.011 0.91
8KHz echo suppressor 256ms tail len 120 0.012 0.97
8KHz echo suppressor 400ms tail len 100 0.010 0.81
8KHz echo suppressor 500ms tail len 104 0.010 0.84
8KHz echo suppressor 512ms tail len 106 0.011 0.86
8KHz echo suppressor 600ms tail len 117 0.012 0.95
8KHz echo suppressor 800ms tail len 102 0.010 0.83
8KHz tone generator with single freq 93 0.009 0.75
8KHz tone generator with dual freq 178 0.018 1.44
8KHz codec encode/decode - G.711 69 0.007 0.56
8KHz codec encode/decode - GSM 1967 0.197 15.94
8KHz codec encode/decode - iLBC 12922 1.292 104.69
8KHz codec encode/decode - Silk 8Khz 15754 1.575 127.64
8KHz codec encode/decode - Speex 8Khz 11915 1.191 96.54
8KHz stream TX/RX - G.711 120 0.012 0.97
8KHz stream TX/RX - G.711 SRTP 32bit 450 0.045 3.65
8KHz stream TX/RX - G.711 SRTP 32bit +auth 736 0.074 5.96
8KHz stream TX/RX - G.711 SRTP 80bit 451 0.045 3.65
8KHz stream TX/RX - G.711 SRTP 80bit +auth 741 0.074 6.00
8KHz stream TX/RX - GSM 2066 0.207 16.74
8KHz stream TX/RX - GSM SRTP 32bit 2201 0.220 17.83
8KHz stream TX/RX - GSM SRTP 32bit + auth 2390 0.239 19.36
8KHz stream TX/RX - GSM SRTP 80bit 2202 0.220 17.84
8KHz stream TX/RX - GSM SRTP 80bit + auth 2393 0.239 19.39
16KHz get from memplayer 8 0.001 0.06
16KHz conference bridge with 1 call 294 0.029 2.38
16KHz conference bridge with 2 calls 642 0.064 5.20
16KHz conference bridge with 4 calls 1326 0.133 10.74
16KHz conference bridge with 8 calls 2693 0.269 21.82
16KHz conference bridge with 16 calls 5414 0.541 43.86
16KHz upsample+downsample - linear 271 0.027 2.20
16KHz upsample+downsample - small filter 7051 0.705 57.13
16KHz upsample+downsample - large filter 33498 3.350 271.40
16KHz WSOLA PLC - 0% loss 37 0.004 0.30
16KHz WSOLA PLC - 2% loss 117 0.012 0.95
16KHz WSOLA PLC - 5% loss 189 0.019 1.53
16KHz WSOLA PLC - 10% loss 346 0.035 2.80
16KHz WSOLA PLC - 20% loss 584 0.058 4.73
16KHz WSOLA PLC - 50% loss 1196 0.120 9.69
16KHz WSOLA discard 2% excess 29 0.003 0.23
16KHz WSOLA discard 5% excess 52 0.005 0.42
16KHz WSOLA discard 10% excess 128 0.013 1.04
16KHz WSOLA discard 20% excess 306 0.031 2.48
16KHz WSOLA discard 50% excess 774 0.077 6.27
16KHz Delay buffer 39 0.004 0.32
16KHz Delay buffer - drift -2% 63 0.006 0.51
16KHz Delay buffer - drift -5% 99 0.010 0.80
16KHz Delay buffer - drift -10% 178 0.018 1.44
16KHz Delay buffer - drift -20% 303 0.030 2.45
16KHz Delay buffer - drift +2% 48 0.005 0.39
16KHz Delay buffer - drift +5% 82 0.008 0.66
16KHz Delay buffer - drift +10% 152 0.015 1.23
16KHz Delay buffer - drift +20% 301 0.030 2.44
16KHz echo canceller 100ms tail len 15020 1.502 121.69
16KHz echo canceller 128ms tail len 15799 1.580 128.00
16KHz echo canceller 200ms tail len 16816 1.682 136.24
16KHz echo canceller 256ms tail len 17673 1.767 143.19
16KHz echo canceller 400ms tail len 19652 1.965 159.22
16KHz echo canceller 500ms tail len 21161 2.116 171.45
16KHz echo canceller 512ms tail len 21349 2.135 172.97
16KHz echo canceller 600ms tail len 22584 2.258 182.97
16KHz echo canceller 800ms tail len 25616 2.562 207.54
16KHz echo suppressor 100ms tail len 312 0.031 2.53
16KHz echo suppressor 128ms tail len 317 0.032 2.57
16KHz echo suppressor 200ms tail len 167 0.017 1.35
16KHz echo suppressor 256ms tail len 170 0.017 1.38
16KHz echo suppressor 400ms tail len 172 0.017 1.39
16KHz echo suppressor 500ms tail len 178 0.018 1.44
16KHz echo suppressor 512ms tail len 175 0.018 1.42
16KHz echo suppressor 600ms tail len 171 0.017 1.39
16KHz echo suppressor 800ms tail len 167 0.017 1.35
16KHz tone generator with single freq 178 0.018 1.44
16KHz tone generator with dual freq 349 0.035 2.83
16KHz codec encode/decode - Silk 16Khz 31405 3.141 254.44
16KHz codec encode/decode - Speex 16Khz 28532 2.853 231.17
icc next
[gang@dev105 bin]$ icc -V
Intel(R) C Compiler XE for applications running on IA-32, Version 12.0.2.137 Build 20110112
Copyright (C) 1985-2011 Intel Corporation. All rights reserved.
FOR NON-COMMERCIAL USE ONLY
[gang@dev105 bin]$
Running mips_test()...
MIPS test, with CPU=2666Mhz, 8102.0 MIPS
Clock Item Time CPU MIPS
Rate (usec) (%)
----------------------------------------------------------------------
8KHz get from memplayer 7 0.001 0.06
8KHz conference bridge with 1 call 128 0.013 1.04
8KHz conference bridge with 2 calls 307 0.031 2.49
8KHz conference bridge with 4 calls 626 0.063 5.07
8KHz conference bridge with 8 calls 1250 0.125 10.13
8KHz conference bridge with 16 calls 2528 0.253 20.48
8KHz upsample+downsample - linear 135 0.014 1.09
8KHz upsample+downsample - small filter 2321 0.232 18.80
8KHz upsample+downsample - large filter 9138 0.914 74.04
8KHz WSOLA PLC - 0% loss 21 0.002 0.17
8KHz WSOLA PLC - 2% loss 58 0.006 0.47
8KHz WSOLA PLC - 5% loss 99 0.010 0.80
8KHz WSOLA PLC - 10% loss 180 0.018 1.46
8KHz WSOLA PLC - 20% loss 291 0.029 2.36
8KHz WSOLA PLC - 50% loss 629 0.063 5.10
8KHz WSOLA discard 2% excess 19 0.002 0.15
8KHz WSOLA discard 5% excess 43 0.004 0.35
8KHz WSOLA discard 10% excess 87 0.009 0.70
8KHz WSOLA discard 20% excess 164 0.016 1.33
8KHz WSOLA discard 50% excess 449 0.045 3.64
8KHz Delay buffer 27 0.003 0.22
8KHz Delay buffer - drift -2% 40 0.004 0.32
8KHz Delay buffer - drift -5% 72 0.007 0.58
8KHz Delay buffer - drift -10% 125 0.013 1.01
8KHz Delay buffer - drift -20% 187 0.019 1.52
8KHz Delay buffer - drift +2% 29 0.003 0.23
8KHz Delay buffer - drift +5% 48 0.005 0.39
8KHz Delay buffer - drift +10% 97 0.010 0.79
8KHz Delay buffer - drift +20% 213 0.021 1.73
8KHz echo canceller 100ms tail len 5493 0.549 44.50
8KHz echo canceller 128ms tail len 5784 0.578 46.86
8KHz echo canceller 200ms tail len 6206 0.621 50.28
8KHz echo canceller 256ms tail len 6612 0.661 53.57
8KHz echo canceller 400ms tail len 7692 0.769 62.32
8KHz echo canceller 500ms tail len 8399 0.840 68.05
8KHz echo canceller 512ms tail len 8566 0.857 69.40
8KHz echo canceller 600ms tail len 9147 0.915 74.11
8KHz echo canceller 800ms tail len 10627 1.063 86.10
8KHz echo suppressor 100ms tail len 93 0.009 0.75
8KHz echo suppressor 128ms tail len 93 0.009 0.75
8KHz echo suppressor 200ms tail len 99 0.010 0.80
8KHz echo suppressor 256ms tail len 103 0.010 0.83
8KHz echo suppressor 400ms tail len 92 0.009 0.75
8KHz echo suppressor 500ms tail len 94 0.009 0.76
8KHz echo suppressor 512ms tail len 95 0.009 0.77
8KHz echo suppressor 600ms tail len 102 0.010 0.83
8KHz echo suppressor 800ms tail len 93 0.009 0.75
8KHz tone generator with single freq 78 0.008 0.63
8KHz tone generator with dual freq 78 0.008 0.63
8KHz codec encode/decode - G.711 72 0.007 0.58
8KHz codec encode/decode - GSM 1868 0.187 15.13
8KHz codec encode/decode - iLBC 7674 0.767 62.17
8KHz codec encode/decode - Silk 8Khz 15568 1.557 126.13
8KHz codec encode/decode - Speex 8Khz 9384 0.938 76.03
8KHz stream TX/RX - G.711 119 0.012 0.96
8KHz stream TX/RX - G.711 SRTP 32bit 287 0.029 2.33
8KHz stream TX/RX - G.711 SRTP 32bit +auth 477 0.048 3.86
8KHz stream TX/RX - G.711 SRTP 80bit 286 0.029 2.32
8KHz stream TX/RX - G.711 SRTP 80bit +auth 478 0.048 3.87
8KHz stream TX/RX - GSM 1927 0.193 15.61
8KHz stream TX/RX - GSM SRTP 32bit 2016 0.202 16.33
8KHz stream TX/RX - GSM SRTP 32bit + auth 2163 0.216 17.52
8KHz stream TX/RX - GSM SRTP 80bit 2019 0.202 16.36
8KHz stream TX/RX - GSM SRTP 80bit + auth 2168 0.217 17.57
16KHz get from memplayer 10 0.001 0.08
16KHz conference bridge with 1 call 223 0.022 1.81
16KHz conference bridge with 2 calls 561 0.056 4.55
16KHz conference bridge with 4 calls 1162 0.116 9.41
16KHz conference bridge with 8 calls 2354 0.235 19.07
16KHz conference bridge with 16 calls 4744 0.474 38.44
16KHz upsample+downsample - linear 254 0.025 2.06
16KHz upsample+downsample - small filter 4642 0.464 37.61
16KHz upsample+downsample - large filter 18308 1.831 148.33
16KHz WSOLA PLC - 0% loss 29 0.003 0.23
16KHz WSOLA PLC - 2% loss 169 0.017 1.37
16KHz WSOLA PLC - 5% loss 226 0.023 1.83
16KHz WSOLA PLC - 10% loss 565 0.056 4.58
16KHz WSOLA PLC - 20% loss 1088 0.109 8.81
16KHz WSOLA PLC - 50% loss 2170 0.217 17.58
16KHz WSOLA discard 2% excess 58 0.006 0.47
16KHz WSOLA discard 5% excess 200 0.020 1.62
16KHz WSOLA discard 10% excess 289 0.029 2.34
16KHz WSOLA discard 20% excess 640 0.064 5.19
16KHz WSOLA discard 50% excess 1788 0.179 14.49
16KHz Delay buffer 48 0.005 0.39
16KHz Delay buffer - drift -2% 93 0.009 0.75
16KHz Delay buffer - drift -5% 198 0.020 1.60
16KHz Delay buffer - drift -10% 332 0.033 2.69
16KHz Delay buffer - drift -20% 688 0.069 5.57
16KHz Delay buffer - drift +2% 49 0.005 0.40
16KHz Delay buffer - drift +5% 128 0.013 1.04
16KHz Delay buffer - drift +10% 246 0.025 1.99
16KHz Delay buffer - drift +20% 666 0.067 5.40
16KHz echo canceller 100ms tail len 10898 1.090 88.30
16KHz echo canceller 128ms tail len 11436 1.144 92.65
16KHz echo canceller 200ms tail len 12473 1.247 101.06
16KHz echo canceller 256ms tail len 13296 1.330 107.72
16KHz echo canceller 400ms tail len 14933 1.493 120.99
16KHz echo canceller 500ms tail len 16310 1.631 132.14
16KHz echo canceller 512ms tail len 16495 1.650 133.64
16KHz echo canceller 600ms tail len 17537 1.754 142.08
16KHz echo canceller 800ms tail len 20200 2.020 163.66
16KHz echo suppressor 100ms tail len 171 0.017 1.39
16KHz echo suppressor 128ms tail len 174 0.017 1.41
16KHz echo suppressor 200ms tail len 156 0.016 1.26
16KHz echo suppressor 256ms tail len 157 0.016 1.27
16KHz echo suppressor 400ms tail len 158 0.016 1.28
16KHz echo suppressor 500ms tail len 161 0.016 1.30
16KHz echo suppressor 512ms tail len 159 0.016 1.29
16KHz echo suppressor 600ms tail len 158 0.016 1.28
16KHz echo suppressor 800ms tail len 155 0.015 1.26
16KHz tone generator with single freq 151 0.015 1.22
16KHz tone generator with dual freq 150 0.015 1.22
16KHz codec encode/decode - Silk 16Khz 31371 3.137 254.17
16KHz codec encode/decode - Speex 16Khz 23599 2.360 191.20
..success(0)