libsamplerate
libsamplerate copied to clipboard
Parallelize resampling (with high delay)
I think such a function would be helpful for anyone trying to speed up SRC by parallelizing its computation over multiple threads. You could split the input to apply SRC independently on each segment, but then it'd be good to know how much overlap is needed between adjacent segments so that you can stitch it together correctly -- ideally to get bitwise identical results compared to single-threaded processing. FWIW: my goal would be to make SRC as fast as VAD, which can be thousands of times faster than real-time -- but it operates internally on 8kHz audio.
_Originally posted by @arlofaria in https://github.com/libsndfile/libsamplerate/issues/6#issuecomment-959173709
This would require multi-threading, which might be complicated to introduce in this codebase.
I've implemented a multi-thread version for my personal needs. Sharing it for those who might be interested.
https://github.com/ss3git/libsamplerate/compare/master...ss3git:libsamplerate:MultiThreading
Hi @ss3git . Interesting idea. Pull request?
Hi, I hope I sent the request correctly. I'm actually not so familiar with github yet.
This looks awesome. What's type of speed boost does this actually give ?
If asking about my implementation, the sinc converter uses multiple threads during its conversion process so is expected to run faster (give more throughput) on multi-core CPUs unless input data blocks to src_process() are very small.
Here is an example comparison of the benchmark (multichan_throughput_test) results on an 8 core cpu.
single-thread:
Converter Channels Duration Throughput
---------------------------------------------------------------------
Fastest Sinc Interpolator 1 5.03 2914383
Fastest Sinc Interpolator 2 5.00 2673097
Fastest Sinc Interpolator 3 5.02 1259082
Fastest Sinc Interpolator 4 5.01 2072984
Fastest Sinc Interpolator 5 5.01 974272
Medium Sinc Interpolator 1 5.06 1255958
Medium Sinc Interpolator 2 5.03 1186395
Medium Sinc Interpolator 3 5.03 576003
Medium Sinc Interpolator 4 5.02 911986
Medium Sinc Interpolator 5 5.02 433959
Best Sinc Interpolator 1 5.27 369097
Best Sinc Interpolator 2 5.13 341291
Best Sinc Interpolator 3 5.18 175364
Best Sinc Interpolator 4 5.11 247623
Best Sinc Interpolator 5 5.17 130465
Best Sinc Interpolator 6 5.02 215596
Best Sinc Interpolator 7 5.09 94618
Best Sinc Interpolator 8 5.12 88757
Best Sinc Interpolator 9 5.00 83624
Best Sinc Interpolator 10 5.00 77856
multi-threaded:
Converter Channels Duration Throughput
---------------------------------------------------------------------
Fastest Sinc Interpolator 1 5.00 10093617
Fastest Sinc Interpolator 2 5.00 8906060
Fastest Sinc Interpolator 3 5.00 7526097
Fastest Sinc Interpolator 4 5.00 6939962
Fastest Sinc Interpolator 5 5.00 5974970
Medium Sinc Interpolator 1 5.01 6443665
Medium Sinc Interpolator 2 5.00 5668893
Medium Sinc Interpolator 3 5.01 4664263
Medium Sinc Interpolator 4 5.00 4190524
Medium Sinc Interpolator 5 5.01 3509137
Best Sinc Interpolator 1 5.01 2407802
Best Sinc Interpolator 2 5.01 2032235
Best Sinc Interpolator 3 5.02 1671403
Best Sinc Interpolator 4 5.01 1471135
Best Sinc Interpolator 5 5.02 1252135
Best Sinc Interpolator 6 5.01 1112856
Best Sinc Interpolator 7 5.01 906998
Best Sinc Interpolator 8 5.02 811740
Best Sinc Interpolator 9 5.00 662631
Best Sinc Interpolator 10 5.01 602992
FYI: updated results of multichan_throughput_test taken with today's version. (on the assumption that the code under review https://github.com/libsndfile/libsamplerate/pull/201 is correctly implemented.)
FreeBSD clang version 14.0.5
Target: x86_64-unknown-freebsd13.2
Thread model: posix
CPU name : Intel(R) Atom(TM) CPU C3708 @ 1.70GHz 8-core CPU
SRC_RATIO : 0.99 Throughput (times faster than realtime if input is 44.1k)
Converter Ch MT(MT_COEFFS_CACHING 1) MT(MT_COEFFS_CACHING 0) SingleThread
--------------------------- ------- -------------------------- -------------------------- --------------------------
Fastest Sinc Interpolator 1 14953596 (x 342.51) 14955917 (x 342.56) 2928023 (x 67.07)
Fastest Sinc Interpolator 2 13608723 (x 311.70) 13305314 (x 304.76) 2681882 (x 61.43)
Fastest Sinc Interpolator 3 11343683 (x 259.82) 11213093 (x 256.83) 1248513 (x 28.60)
Fastest Sinc Interpolator 4 10248991 (x 234.75) 10110782 (x 231.59) 2069735 (x 47.41)
Fastest Sinc Interpolator 5 8821366 (x 202.05) 8700990 (x 199.29) 958725 (x 21.96)
Medium Sinc Interpolator 1 7821661 (x 179.15) 7782627 (x 178.26) 1257899 (x 28.81)
Medium Sinc Interpolator 2 7094296 (x 162.49) 7022790 (x 160.86) 1190091 (x 27.26)
Medium Sinc Interpolator 3 5969939 (x 136.74) 5813803 (x 133.16) 568288 (x 13.02)
Medium Sinc Interpolator 4 5402227 (x 123.74) 5349935 (x 122.54) 910567 (x 20.86)
Medium Sinc Interpolator 5 4711434 (x 107.91) 4644047 (x 106.37) 428793 (x 9.82)
Best Sinc Interpolator 1 2497397 (x 57.20) 2531469 (x 57.98) 330662 (x 7.57)
Best Sinc Interpolator 2 2382031 (x 54.56) 2371162 (x 54.31) 308536 (x 7.07)
Best Sinc Interpolator 3 2057456 (x 47.13) 2001742 (x 45.85) 163853 (x 3.75)
Best Sinc Interpolator 4 1895055 (x 43.41) 1892653 (x 43.35) 229276 (x 5.25)
Best Sinc Interpolator 5 1613921 (x 36.97) 1628117 (x 37.29) 123603 (x 2.83)
Best Sinc Interpolator 6 1569066 (x 35.94) 1566992 (x 35.89) 198040 (x 4.54)
Best Sinc Interpolator 7 1296081 (x 29.69) 1402193 (x 32.12) 90979 (x 2.08)
Best Sinc Interpolator 8 1187603 (x 27.20) 1253861 (x 28.72) 84939 (x 1.95)
Best Sinc Interpolator 9 1071478 (x 24.54) 1097344 (x 25.13) 80740 (x 1.85)
Best Sinc Interpolator 10 1003206 (x 22.98) 1006017 (x 23.04) 75260 (x 1.72)
SRC_RATIO : 2.00
Converter Ch MT(MT_COEFFS_CACHING 1) MT(MT_COEFFS_CACHING 0) SingleThread
--------------------------- ------- -------------------------- -------------------------- --------------------------
Fastest Sinc Interpolator 1 23360228 (x 264.86) 22736188 (x 257.78) 2946999 (x 33.41)
Fastest Sinc Interpolator 2 21372339 (x 242.32) 20217167 (x 229.22) 2709364 (x 30.72)
Fastest Sinc Interpolator 3 17020458 (x 192.98) 16171442 (x 183.35) 1246585 (x 14.13)
Fastest Sinc Interpolator 4 16069963 (x 182.20) 14747527 (x 167.21) 2067706 (x 23.44)
Fastest Sinc Interpolator 5 13365211 (x 151.53) 12872925 (x 145.95) 970611 (x 11.00)
Medium Sinc Interpolator 1 16412307 (x 186.08) 8881813 (x 100.70) 1317847 (x 14.94)
Medium Sinc Interpolator 2 14954823 (x 169.56) 8230452 (x 93.32) 1246604 (x 14.13)
Medium Sinc Interpolator 3 10997127 (x 124.68) 6968913 (x 79.01) 581464 (x 6.59)
Medium Sinc Interpolator 4 10064307 (x 114.11) 6388635 (x 72.43) 945012 (x 10.71)
Medium Sinc Interpolator 5 8042831 (x 91.19) 5489548 (x 62.24) 439708 (x 4.99)
Best Sinc Interpolator 1 8497627 (x 96.34) 2703943 (x 30.66) 444756 (x 5.04)
Best Sinc Interpolator 2 7270660 (x 82.43) 2578758 (x 29.24) 407956 (x 4.63)
Best Sinc Interpolator 3 4687158 (x 53.14) 2172766 (x 24.63) 194233 (x 2.20)
Best Sinc Interpolator 4 4306196 (x 48.82) 2080988 (x 23.59) 300526 (x 3.41)
Best Sinc Interpolator 5 3266027 (x 37.03) 1753489 (x 19.88) 143217 (x 1.62)
Best Sinc Interpolator 6 2881557 (x 32.67) 1756467 (x 19.91) 252612 (x 2.86)
Best Sinc Interpolator 7 2686547 (x 30.46) 1558904 (x 17.67) 106518 (x 1.21)
Best Sinc Interpolator 8 2502733 (x 28.38) 1411842 (x 16.01) 97390 (x 1.10)
Best Sinc Interpolator 9 2096153 (x 23.77) 1251207 (x 14.19) 89430 (x 1.01)
Best Sinc Interpolator 10 2062706 (x 23.39) 1166248 (x 13.22) 83105 (x 0.94)
SRC_RATIO : 7.00
Converter Ch MT(MT_COEFFS_CACHING 1) MT(MT_COEFFS_CACHING 0) SingleThread
--------------------------- ------- -------------------------- -------------------------- --------------------------
Fastest Sinc Interpolator 1 25086964 (x 81.27) 15897070 (x 51.50) 2913253 (x 9.44)
Fastest Sinc Interpolator 2 23432790 (x 75.91) 16345814 (x 52.95) 2691671 (x 8.72)
Fastest Sinc Interpolator 3 18483233 (x 59.87) 14135872 (x 45.79) 1258286 (x 4.08)
Fastest Sinc Interpolator 4 18131462 (x 58.73) 13189839 (x 42.73) 2074321 (x 6.72)
Fastest Sinc Interpolator 5 15203693 (x 49.25) 11550759 (x 37.42) 972122 (x 3.15)
Medium Sinc Interpolator 1 17145587 (x 55.54) 9291460 (x 30.10) 1282661 (x 4.16)
Medium Sinc Interpolator 2 15934270 (x 51.62) 8707996 (x 28.21) 1202105 (x 3.89)
Medium Sinc Interpolator 3 11709352 (x 37.93) 7343613 (x 23.79) 571358 (x 1.85)
Medium Sinc Interpolator 4 10722703 (x 34.74) 6773466 (x 21.94) 917705 (x 2.97)
Medium Sinc Interpolator 5 8683235 (x 28.13) 5835175 (x 18.90) 432289 (x 1.40)
Best Sinc Interpolator 1 8592448 (x 27.83) 2744883 (x 8.89) 389036 (x 1.26)
Best Sinc Interpolator 2 7253302 (x 23.50) 2599250 (x 8.42) 359145 (x 1.16)
Best Sinc Interpolator 3 4759826 (x 15.42) 2199713 (x 7.13) 179872 (x 0.58)
Best Sinc Interpolator 4 4370238 (x 14.16) 2093183 (x 6.78) 262926 (x 0.85)
Best Sinc Interpolator 5 3329585 (x 10.79) 1798441 (x 5.83) 135256 (x 0.44)
Best Sinc Interpolator 6 3346581 (x 10.84) 1751943 (x 5.68) 226480 (x 0.73)
Best Sinc Interpolator 7 2753861 (x 8.92) 1561983 (x 5.06) 99273 (x 0.32)
Best Sinc Interpolator 8 2561411 (x 8.30) 1416038 (x 4.59) 92115 (x 0.30)
Best Sinc Interpolator 9 2133711 (x 6.91) 1243797 (x 4.03) 86569 (x 0.28)
Best Sinc Interpolator 10 2103193 (x 6.81) 1150882 (x 3.73) 80368 (x 0.26)
SRC_RATIO : 0.25
Converter Ch MT(MT_COEFFS_CACHING 1) MT(MT_COEFFS_CACHING 0) SingleThread
--------------------------- ------- -------------------------- -------------------------- --------------------------
Fastest Sinc Interpolator 1 8450528 (x 766.49) 8379715 (x 760.06) 844095 (x 76.56)
Fastest Sinc Interpolator 2 6691200 (x 606.91) 6595874 (x 598.27) 776601 (x 70.44)
Fastest Sinc Interpolator 3 4794910 (x 434.91) 4741967 (x 430.11) 357715 (x 32.45)
Fastest Sinc Interpolator 4 3944899 (x 357.81) 3924020 (x 355.92) 590539 (x 53.56)
Fastest Sinc Interpolator 5 3185471 (x 288.93) 3148933 (x 285.62) 267403 (x 24.25)
Medium Sinc Interpolator 1 2545789 (x 230.91) 2566129 (x 232.76) 367001 (x 33.29)
Medium Sinc Interpolator 2 2244949 (x 203.62) 2258829 (x 204.88) 344064 (x 31.21)
Medium Sinc Interpolator 3 1807346 (x 163.93) 1810465 (x 164.21) 154623 (x 14.02)
Medium Sinc Interpolator 4 1612026 (x 146.22) 1610174 (x 146.05) 252313 (x 22.89)
Medium Sinc Interpolator 5 1360607 (x 123.41) 1358991 (x 123.26) 114279 (x 10.37)
Best Sinc Interpolator 1 701720 (x 63.65) 706311 (x 64.06) 99126 (x 8.99)
Best Sinc Interpolator 2 652858 (x 59.22) 660122 (x 59.88) 91180 (x 8.27)
Best Sinc Interpolator 3 563100 (x 51.07) 559525 (x 50.75) 46184 (x 4.19)
Best Sinc Interpolator 4 516150 (x 46.82) 517819 (x 46.97) 68173 (x 6.18)
Best Sinc Interpolator 5 438872 (x 39.81) 441352 (x 40.03) 34267 (x 3.11)
Best Sinc Interpolator 6 425251 (x 38.57) 424684 (x 38.52) 57094 (x 5.18)
Best Sinc Interpolator 7 375483 (x 34.06) 327954 (x 29.75) 25237 (x 2.29)
Best Sinc Interpolator 8 300457 (x 27.25) 333444 (x 30.24) 23463 (x 2.13)
Best Sinc Interpolator 9 293260 (x 26.60) 292853 (x 26.56) 21543 (x 1.95)
Best Sinc Interpolator 10 267652 (x 24.28) 269366 (x 24.43) 20681 (x 1.88)
FYI 2: results of multichan_throughput_test on another machine.
Windows 10 22H2
Visual Studio 2022 (MSVC)
Intel(R) Xeon(R) CPU E5-2667 v4 @ 3.20GHz 8-core CPU x2 = 16 cores w/o HT, NUMA configuration
set OMP_PROC_BIND=true
MT: cmake . -DBUILD_MULTI_THREADING=1
ST: cmake . -DBUILD_MULTI_THREADING=0
SRC_RATIO : 0.99 Throughput (times faster than realtime if input is 44.1k)
Converter Ch MT(MT_COEFFS_CACHING 1) MT(MT_COEFFS_CACHING 0) SingleThread
--------------------------- ------- -------------------------- -------------------------- -------------------------
Fastest Sinc Interpolator 1 39595138 (x 906.92) 40381623 (x 924.93) 9788397 (x 224.20)
Fastest Sinc Interpolator 2 34322049 (x 786.14) 37532640 (x 859.68) 8294814 (x 189.99)
Fastest Sinc Interpolator 3 32959548 (x 754.93) 31871823 (x 730.02) 3757837 (x 86.07)
Fastest Sinc Interpolator 4 28697308 (x 657.31) 28723261 (x 657.90) 6021516 (x 137.92)
Fastest Sinc Interpolator 5 26907033 (x 616.30) 27742688 (x 635.44) 3304962 (x 75.70)
Medium Sinc Interpolator 1 31098028 (x 712.29) 32096452 (x 735.16) 4694531 (x 107.53)
Medium Sinc Interpolator 2 27239124 (x 623.91) 27049967 (x 619.57) 3930216 (x 90.02)
Medium Sinc Interpolator 3 23037080 (x 527.66) 23547477 (x 539.35) 1882485 (x 43.12)
Medium Sinc Interpolator 4 20040521 (x 459.02) 20840098 (x 477.34) 2821238 (x 64.62)
Medium Sinc Interpolator 5 18752915 (x 429.53) 18261365 (x 418.27) 1474545 (x 33.77)
Best Sinc Interpolator 1 13173179 (x 301.73) 14049233 (x 321.79) 888947 (x 20.36)
Best Sinc Interpolator 2 12166808 (x 278.68) 12610344 (x 288.84) 732030 (x 16.77)
Best Sinc Interpolator 3 10106721 (x 231.49) 9974372 (x 228.46) 424141 (x 9.71)
Best Sinc Interpolator 4 8337337 (x 190.96) 8269147 (x 189.40) 531926 (x 12.18)
Best Sinc Interpolator 5 6813632 (x 156.06) 7109426 (x 162.84) 320076 (x 7.33)
Best Sinc Interpolator 6 6029607 (x 138.11) 5878218 (x 134.64) 417476 (x 9.56)
Best Sinc Interpolator 7 5064976 (x 116.01) 4947400 (x 113.32) 259898 (x 5.95)
Best Sinc Interpolator 8 4189830 (x 95.97) 4343983 (x 99.50) 351089 (x 8.04)
Best Sinc Interpolator 9 3633851 (x 83.23) 3774632 (x 86.46) 284169 (x 6.51)
Best Sinc Interpolator 10 3226492 (x 73.90) 3223254 (x 73.83) 254683 (x 5.83)
SRC_RATIO : 2.00
Converter Ch MT(MT_COEFFS_CACHING 1) MT(MT_COEFFS_CACHING 0) SingleThread
--------------------------- ------- -------------------------- -------------------------- -------------------------
Fastest Sinc Interpolator 1 47081062 (x 533.80) 50363931 (x 571.02) 9921784 (x 112.49)
Fastest Sinc Interpolator 2 44433408 (x 503.78) 45980057 (x 521.32) 8497586 (x 96.34)
Fastest Sinc Interpolator 3 38849148 (x 440.47) 38919052 (x 441.26) 4220750 (x 47.85)
Fastest Sinc Interpolator 4 34026291 (x 385.79) 35198899 (x 399.08) 6068633 (x 68.81)
Fastest Sinc Interpolator 5 33117386 (x 375.48) 32494874 (x 368.42) 3323935 (x 37.69)
Medium Sinc Interpolator 1 43437412 (x 492.49) 34889669 (x 395.57) 4787067 (x 54.28)
Medium Sinc Interpolator 2 37977070 (x 430.58) 32957940 (x 373.67) 4085361 (x 46.32)
Medium Sinc Interpolator 3 31771368 (x 360.22) 28561835 (x 323.83) 1883264 (x 21.35)
Medium Sinc Interpolator 4 27249868 (x 308.96) 24448255 (x 277.19) 2885150 (x 32.71)
Medium Sinc Interpolator 5 24541881 (x 278.25) 22900550 (x 259.64) 1506912 (x 17.09)
Best Sinc Interpolator 1 28172886 (x 319.42) 16387272 (x 185.80) 1516794 (x 17.20)
Best Sinc Interpolator 2 22089903 (x 250.45) 14412155 (x 163.40) 1220119 (x 13.83)
Best Sinc Interpolator 3 16637152 (x 188.63) 11736829 (x 133.07) 615111 (x 6.97)
Best Sinc Interpolator 4 12947324 (x 146.80) 10151988 (x 115.10) 860428 (x 9.76)
Best Sinc Interpolator 5 10999394 (x 124.71) 9012208 (x 102.18) 450790 (x 5.11)
Best Sinc Interpolator 6 9155592 (x 103.80) 7728492 (x 87.62) 654957 (x 7.43)
Best Sinc Interpolator 7 7586964 (x 86.02) 6655592 (x 75.46) 371950 (x 4.22)
Best Sinc Interpolator 8 6583734 (x 74.65) 5851194 (x 66.34) 471859 (x 5.35)
Best Sinc Interpolator 9 5820543 (x 65.99) 5063872 (x 57.41) 412105 (x 4.67)
Best Sinc Interpolator 10 4953455 (x 56.16) 4459838 (x 50.57) 366409 (x 4.15)
SRC_RATIO : 7.00
Converter Ch MT(MT_COEFFS_CACHING 1) MT(MT_COEFFS_CACHING 0) SingleThread
--------------------------- ------- -------------------------- -------------------------- -------------------------
Fastest Sinc Interpolator 1 52292566 (x 169.40) 49453224 (x 160.20) 9856614 (x 31.93)
Fastest Sinc Interpolator 2 48539360 (x 157.24) 44249907 (x 143.34) 8409776 (x 27.24)
Fastest Sinc Interpolator 3 40492355 (x 131.17) 38307830 (x 124.09) 4118617 (x 13.34)
Fastest Sinc Interpolator 4 36267622 (x 117.49) 34917580 (x 113.11) 6040003 (x 19.57)
Fastest Sinc Interpolator 5 35367928 (x 114.57) 32243220 (x 104.45) 3316638 (x 10.74)
Medium Sinc Interpolator 1 43463475 (x 140.80) 36797658 (x 119.20) 4771020 (x 15.46)
Medium Sinc Interpolator 2 38448835 (x 124.55) 33187430 (x 107.51) 3986881 (x 12.92)
Medium Sinc Interpolator 3 33233085 (x 107.65) 28387470 (x 91.96) 1874309 (x 6.07)
Medium Sinc Interpolator 4 27459584 (x 88.95) 23766954 (x 76.99) 2835189 (x 9.18)
Medium Sinc Interpolator 5 23707941 (x 76.80) 22398767 (x 72.56) 1508417 (x 4.89)
Best Sinc Interpolator 1 27922212 (x 90.45) 16524537 (x 53.53) 1402395 (x 4.54)
Best Sinc Interpolator 2 20199182 (x 65.43) 14074317 (x 45.59) 1115616 (x 3.61)
Best Sinc Interpolator 3 15093399 (x 48.89) 11889402 (x 38.51) 589591 (x 1.91)
Best Sinc Interpolator 4 11985896 (x 38.83) 10169153 (x 32.94) 785018 (x 2.54)
Best Sinc Interpolator 5 9722858 (x 31.50) 8624474 (x 27.94) 438291 (x 1.42)
Best Sinc Interpolator 6 7904728 (x 25.61) 7567108 (x 24.51) 609587 (x 1.97)
Best Sinc Interpolator 7 6717007 (x 21.76) 6618335 (x 21.44) 352020 (x 1.14)
Best Sinc Interpolator 8 5834589 (x 18.90) 5859612 (x 18.98) 483515 (x 1.57)
Best Sinc Interpolator 9 5070880 (x 16.43) 4947631 (x 16.03) 393921 (x 1.28)
Best Sinc Interpolator 10 4414437 (x 14.30) 4589021 (x 14.87) 368407 (x 1.19)
SRC_RATIO : 0.25
Converter Ch MT(MT_COEFFS_CACHING 1) MT(MT_COEFFS_CACHING 0) SingleThread
--------------------------- ------- -------------------------- -------------------------- -------------------------
Fastest Sinc Interpolator 1 21996035 (x1995.11) 28096217 (x2548.41) 3068115 (x 278.29)
Fastest Sinc Interpolator 2 20082767 (x1821.57) 21761228 (x1973.81) 2562659 (x 232.44)
Fastest Sinc Interpolator 3 15792473 (x1432.42) 17817597 (x1616.11) 1170477 (x 106.17)
Fastest Sinc Interpolator 4 13023641 (x1181.28) 14996275 (x1360.21) 1781154 (x 161.56)
Fastest Sinc Interpolator 5 10996301 (x 997.40) 12292682 (x1114.98) 916249 (x 83.11)
Medium Sinc Interpolator 1 12943360 (x1174.00) 14153837 (x1283.79) 1392852 (x 126.34)
Medium Sinc Interpolator 2 10649600 (x 965.95) 11881676 (x1077.70) 1143374 (x 103.71)
Medium Sinc Interpolator 3 8605139 (x 780.51) 9195326 (x 834.04) 507793 (x 46.06)
Medium Sinc Interpolator 4 7530086 (x 683.00) 7829913 (x 710.20) 778321 (x 70.60)
Medium Sinc Interpolator 5 6632648 (x 601.60) 6921024 (x 627.76) 396300 (x 35.95)
Best Sinc Interpolator 1 4630616 (x 420.01) 4596949 (x 416.96) 355611 (x 32.25)
Best Sinc Interpolator 2 4016553 (x 364.31) 3927312 (x 356.22) 287553 (x 26.08)
Best Sinc Interpolator 3 3014145 (x 273.39) 3145824 (x 285.34) 148463 (x 13.47)
Best Sinc Interpolator 4 2479545 (x 224.90) 2483814 (x 225.29) 208962 (x 18.95)
Best Sinc Interpolator 5 2037886 (x 184.84) 2019538 (x 183.18) 109712 (x 9.95)
Best Sinc Interpolator 6 1673556 (x 151.80) 1703462 (x 154.51) 158918 (x 14.41)
Best Sinc Interpolator 7 1434620 (x 130.12) 1409353 (x 127.83) 89947 (x 8.16)
Best Sinc Interpolator 8 1192516 (x 108.16) 1120217 (x 101.61) 121429 (x 11.01)
Best Sinc Interpolator 9 986119 (x 89.44) 992536 (x 90.03) 96541 (x 8.76)
Best Sinc Interpolator 10 848743 (x 76.98) 874609 (x 79.33) 90737 (x 8.23)